springmvc 통합 Mybatis Log4j 로그 출력 문제 해결

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
  • 어떤 로그 구현 도 구 를 선택 할 지 는 MyBatis 내 장 된 로그 공장 에서 확인 합 니 다.그것 은 가장 먼저 찾 은 것 을 사용 할 것 이다.하나 도 찾 지 못 하면 로그 기능 이 비활성 화 됩 니 다.
    많은 응용 서버 의 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.로그 출력 을 어떻게 시작 합 니까?
    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 의 기본 출력 은 데이터 베 이 스 를 연결 하 는 상세 한 정 보 를 뚜렷하게 볼 수 있 습 니 다.
    在这里插入图片描述
    이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

    좋은 웹페이지 즐겨찾기