springmvc 통합 Mybatis Log4j 로그 출력 문제 해결
웹 개발 을 진행 할 때 항상 설 정 된 log 4 j 로 그 를 볼 수 있 습 니 다.콘 솔 에서 my batis 를 표시 할 수 없 는 것 은 주로 sql,파라미터,결 과 를 말 합 니 다.이런 문제 가 발생 하면 두 가지 상황 이 있 습 니 다.
제1 종 상황
아래 문서 에서 설명 한 my batis 자체 에 여러 가지 로그 프레임 워 크 가 내장 되 어 있 기 때문에 구체 적 인 로그 프레임 워 크 를 사용 하려 면 해당 my batis 설정 을 하거나 my batis 자체 규칙 에 따라 실행 해 야 합 니 다.
문 제 는 여기 있 습 니 다.문서:http://mybatis.github.io/mybatis-3/zh/logging.html
설정 방식:파일 을 추가 하면 my batis-config.xml 을 직접 추가 합 니 다.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
</configuration>
이 파일 을 다음 에 추가 합 니 다:
<!--( ) MyBatis MyBatis (dataSource1 )-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dynamicDataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml"></property><!-- mybatis -->
<property name="mapperLocations" value="classpath*:com/belle/finance/**/**/daomapper/mapper/*Mapper.xml"/>
</bean>
이렇게 설정 되 어 있 습 니 다.log4j 를 사용 하여 로그 기록 을 하면 my batis 자체 규칙 을 실행 하지 않 습 니 다.두 번 째 상황
로그 4j 의 로그 단계 사용 오류 로 인해 my batis 정보 가 인쇄 되 지 않 습 니 다.
로그 수준
모든 Logger 는 로그 정보의 출력 을 제어 하기 위해 로그 단계(log level)를 사용 합 니 다.로그 단 계 는 높 은 것 에서 낮은 것 으로 나 뉜 다.
A:
off
최고 등급 으로 모든 로그 기록 을 닫 는 데 사 용 됩 니 다.B:
fatal
모든 심각 한 오류 사건 이 응용 프로그램의 종 료 를 초래 할 수 있다 고 지적 했다.C:
error
오류 사건 이 발생 했 지만 시스템 의 계속 운행 에 영향 을 주지 않 는 다 고 지적 했다.D:
warm
잠재 적 인 오류 가 발생 할 수 있 음 을 나타 낸다.E:
info
일반적으로 굵 은 입자 등급 에서 응용 프로그램의 운행 전 과정 을 강조 합 니 다.F:
debug
보통 입자 등급 에 사용 되 는데 디 버 깅 프로그램 에 도움 이 됩 니 다.G:
all
최저 등급 으로 모든 로그 기록 을 여 는 데 사 용 됩 니 다.위의 이 단 계 는 org.apache.log4j.Level 클래스 에 정의 되 어 있 습 니 다.Log4j 는 4 단계 만 사용 하 는 것 을 권장 합 니 다.우선 순 위 는 높 은 것 부터 낮은 것 까지 각각 error,warn,info,debug 입 니 다.로그 단 계 를 사용 하면 프로그램의 해당 단계 로그 정보의 출력 을 제어 할 수 있 습 니 다.예 를 들 어 b 가 info 단 계 를 사용 하면 프로그램 에서 info 단계 보다 낮은 로그 정보(예 를 들 어 debug)는 인쇄 되 지 않 습 니 다.
위의 log 4 j 의 설명 에 따 르 면 my batis 의 입자 도 에 따라 my batis 는 log 4 j 의 로 그 를 적어도 DEBUG 단계 로 설정 해 야 sql 로 그 를 표시 할 수 있 습 니 다.다음 과 같 습 니 다.
log4j.logger.com.demo.user=DEBUG
Mybatis 에 내 장 된 로그 공장 은 로그 기능 을 제공 합 니 다.구체 적 인 로 그 는 다음 과 같은 몇 가지 도구 가 있 습 니 다.SLF4J
Apache Commons Logging
Log4j 2
Log4j
JDK logging
많은 응용 서버 의 classpath 에는 Tomcat 과 WebShpere 같은 Commons Logging 이 포함 되 어 있 기 때문에 MyBatis 는 이 를 구체 적 인 로그 로 구현 합 니 다.그 걸 기억 하 는 게 중요 해.
이것 은 WebSphere 와 같은 환경 에서-WebSphere 가 Commons Logging 의 개인 적 인 실현 을 제공 하고 Log4J 설정 이 무시 된다 는 것 을 의미 합 니 다.
이런 방법 은 사람 을 슬 프 게 하 는 것 을 피 할 수 없다.MyBatis 가 어떻게 당신 의 설정 을 무시 할 수 있 습 니까?사실 Commons Logging 이 이미 존재 하기 때문에 우선 순위 에 따라 Log4J 는 자 연 스 럽 게 무시 되 었 습 니 다!
단,Commons Logging 을 포함 하 는 환경 에 애플 리 케 이 션 을 배치 하고 다른 로그 프레임 워 크 를 사용 하려 면 MyBatis 설정 파일 my batis-config.xml 에 setting(설정)을 추가 하여 다른 로 그 를 선택 할 수 있 습 니 다.
Log4j 로그 출력 기능 구현
1.my btis 의 logger 를 왜 설정 합 니까?
my batis 자체 디자인 및 org.apache.ibatis.logging.Log 인 터 페 이 스 를 실현 하 였 습 니 다.
Mybatis 는 제3자 의 로그 패키지 에 강 한 의존 을 피하 기 위해 내부 의 Log 는 프 록 시 모드 를 사용 합 니 다.설정 을 통 해 실제 로그 대상 을 대리 합 니 다.log 가 설정 되 어 있 지 않 으 면 my batis 는 다음 순서 로 로그 출력 류 를 불 러 오 려 고 합 니 다.
SLF4J
Apache Commons Logging
Log4j 2
Log4j
JDK logging
no logging
(로그 없 음)2.1 log4j 의 jar 패 키 지 를 다운로드 하여 build path 로 가 져 오기
2.2 로그 출력 설정 열기
config.xml 파일 의 settings 요소 에 로그 구현 클래스 를 설정 합 니 다.
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
2.3 파일 작성:log4j.properties 는 클래스 경로 아래 에 놓 습 니 다.첫 번 째 줄 은 로그 출력 단 계 를 나타 내 는 debug 단 계 를 표시 합 니 다.Console 은 출력 위 치 를 콘 솔(파일 이나 데이터 베 이 스 를 출력 할 수 있 고 메 일 을 보 낼 수 있 습 니 다)이 라 고 표시 합 니 다.
log4j.rootLogger=DEBUG,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
2.4 log4j 의 로그 출력 단계:DEBUG < INFO < WARN < <ERROR < FATAL
DEBUG
:유 경 시스템 의 상세 한 정보.개발 단계 의 디 버 깅 에 사용 되 는 최소한 의 로그 출력 입 니 다.INFO
:일반 메시지 출력(시작,닫 기)WARN
:경고 출력ERROR
:오류 출력FATAL
:응용 프로그램 이 미리 종 료 된 심각 한 오류 입 니 다.일반적으로 이 정 보 는 즉시 상태 콘 솔 에 나타 날 것 이다.debug 의 기본 출력 은 데이터 베 이 스 를 연결 하 는 상세 한 정 보 를 뚜렷하게 볼 수 있 습 니 다.
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
springmvc application/octet-stream problemmistake: Source code: Solution: Summarize: application/octet-stream is the original binary stream method. If the convers...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.