이 기사는 주로 SSM 프레임 워크에서 LOG4J 및 SLF4J와 결합 된 로그에 대한 자세한 설명을 소개하고 귀하와 공유합니다. 세부 사항은 다음과 같습니다.
먼저 Log4J 및 SLF4J JAR 패키지를 추가하십시오
<!-로그 처리 <!-SLF4J 로그 패키지-> <pectionency> <groupid> org.slf4j </groupid> <artifactid> slf4j-api </artifactid> <버전> 1.7.21 </version> </fectionency> <pectionement> <groupid> org.slf4j </groupid> <Artifactid> slf4j-log4j12 </artifactid> <bersion> 1.7.21 </version> </fectionency> <!-로그 패키지 소개-> <pectionency> <groupid> log4j </groupid>-> <artifactid> log4j </artifactid> <2.16 </dependency>
Mybatis의 내장 로그 공장은 로깅 기능을 제공합니다. 특정 로그 구현에는 다음과 같은 도구가 있습니다.
1. 선택할 로그 구현 도구는 MyBatis의 내장 로그 공장에 의해 결정됩니다. 처음 발견 된 것을 사용합니다 (위에 나열된 순서로 찾으십시오). 그 중 어느 것도 발견되지 않으면 로깅 함수가 비활성화됩니다.
많은 응용 프로그램 서버에는 이미 Tomcat 및 Webshpere와 같은 커먼즈 로깅이 포함되어 있으므로 Mybatis는 특정 로그로 구현합니다. 이것을 기억하는 것이 매우 중요합니다. 이는 WebSphere -WebSphere와 같은 환경에서 Commons Logging의 개인 구현을 제공하며 Log4J 구성이 무시됩니다. 이 접근법은 필연적으로 슬프다. mybatis는 어떻게 구성을 무시할 수 있습니까? 실제로, 커먼즈 로깅은 이미 존재하기 때문에 Log4J는 우선 순위로 자연스럽게 무시됩니다! 그러나 Commons 로깅이 포함 된 환경에 응용 프로그램이 배포되고 다른 로깅 프레임 워크를 사용하려는 경우 MyBatis Configuration 파일 MyBatis-config.xml에 설정 (config)을 추가하여 다른 로그 구현을 선택할 수 있습니다.
<? 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"> <! <! <settings> <setting name = "logimpl"value = "slf4j"/> </settings> <!-이 파일은 빈 파일이 될 수 있지만이 파일이 있어야합니다.> <!-구성 파일의 플러그인 위치는 요구 사항을 충족해야합니다. 그렇지 않으면 오류가 다음 순서 에보고되어야합니다. DatabaseIdProvider?, 매퍼? -> <plugins> <!-com.github.pageHelper는 PageHelper 클래스가 위치한 패키지 이름입니다-> <Plugin interceptor = "com.github.pageHelper.pageHelper"> <!-이 매개 변수는 버전으로 설정하지 않고 설정할 수 있습니다. 4.0.0------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ When set to true, the first parameter offset of RowBounds will be used pagenum 페이지 번호-> <!-효과는 startpage의 pagenum과 동일합니다-> <property name = "hepsetaspagenum"value = "true" /<!-이 매개 변수는 false-> <!-true로 설정할 때 쿼리는 rowbounds pagination을 사용하여 수행됩니다-> <propectcount "value =! <! rowbounds.limit = 0, 모든 결과가 쿼리됩니다-> <!-(페이지 쿼리가 실행되지 않지만 결과는 여전히 페이지 유형이라는 사실에 동일합니다)-> <property name = "pagesize"value = "true" /> <!-버전 3.3.0은 사용할 수 있습니다-PAGEAGER RECURINATION-<1! Pagenum> 페이지는 마지막 페이지를 쿼리합니다-> <!-합리화가 비활성화되면 pagenum <1 또는 pagenum> 페이지가 빈 데이터를 반환하는 경우-<속성 이름 = "합리적"value = "false" />-> <!-버전 3.5.0을 사용할 수 있습니다. ServletRequest-> <!-Pagenum, Pagesize, Count, Pagesize, Pagesizezero, 합리적, OrderBy를 구성하고 Mappings의 기본값을 사용할 수 있습니다 .-> <!-이 의미를 이해하지 못하면 구성을 자연스럽게 복사하지 마십시오-<property name = "params"value = "pagenum = pagehelperstart; pagehelperrows;" />-> <!-맵퍼 인터페이스 매개 변수를 통해 페이징 매개 변수를 전달하는 지원-> <속성 이름 = "supportMethodSarguments"value = "false"/> <!-항상 항상 pageinfo 유형을 확인하십시오. 반환 유형이 pageinfo인지 확인하십시오.> <property name = "returnPageInfo"value "/> </configins>
logimpl의 선택적 값은 SLF4J, LOG4J, LOG4J2, JDK_LOGGIG, Commons_Logging, No_Logging 또는 인터페이스 org.apache.logging.log를 구현하는 클래스의 정규화 된 클래스 이름 및이 클래스의 생성자가 매개 변수로서 문자열 (문자열 형)이어야합니다. (org.apache.ibatis.logging.slf4j.slf4jimpl.java의 구현을 참조 할 수 있습니다)
필요에 따라 메소드를 호출합니다.
org.apache.ibatis.logging.logfactory.useslf4jlogging (); org.apache.ibatis.logging.logfactory.uselog4jlogging (); org.apache.ibatis.logging.logfactory.usejdklogging (); org.apache.ibatis.logging.logfactory.usejdklogging (); org.apache.ibatis.logging.logfactory.usecommonslogging (); org.apache.ibatis.logging.logfactory.usestdoutlogging ();
위의 방법 중 하나를 호출 해야하는 경우 다른 모든 mybatis 방법 전에 전화하십시오. 또한, 해당 로그 구현에 존재한다는 전제에 따라 해당 방법을 호출하는 것은 의미가 있으며, 그렇지 않으면 mybatis는 무시됩니다. Log4J가 귀하의 환경에 존재하지 않지만 해당 메소드를 호출하는 경우 MyBatis는이 호출을 무시하고 대신 기본 검색 순서에서 로그 구현을 검색합니다.
2. web.xml 구성
<!-로드 log4j-> <cectext-param> <param-name> log4jconfiglocation </param-name> <param-value> classpath : log4j.properties </param- value> </context-param> <layer> <layerclass> org.springframework.web.utwork.log4jconfiglistnernflistner.
3. Application ClassPath에서 log4j.properties라는 파일을 만듭니다. 파일의 특정 내용은 다음과 같습니다.
log4j.rootlogger = info, console, dailyfile# todo Alibaba Cloud에 게시 할 때 추가하십시오. 또한 콘솔은 출력 (출력 경고 또는 오류 정보 만)#정보, 콘솔, DailyFilelog4j.logger.org.mybatis가 있습니다. = debuglog4j.logger.com.itzixi.mapper = debuglog4j.appender.console = org.apache.log4j.consoleappenderlog4j.appender.console.encoding = utf-8log4j.appender.console.layout = org.apache.log4j.patternlayoutlog4j.appender.console.layout.conversionpattern =%-d {yyyy-mm-dd hh : mm : ss, ss} [%t] [%l] - [%p]%m%n#mybatis는 sql station log configuration#log4j.logger.org.mybatis = debug#log4j.logger.com.itzixi.mapper = debug#정기적으로 로그 파일을 스크롤하고 로그 파일을 생성합니다. log4j.appender.dailyfile = org.apache.log4j.dailyrollingfileappenderlog4j.appender.dailyfile.encoding = utf-8log4j.appender.dailyfile.threshold = info# 공식 로그 주소, 공식 환경에 대해서는 알리바바 클라우드 주소로 전환해야합니다. #log4j.appender.dailyfile.file = c : /logs/itzixi-web/log.log4jlog4j.appender.dailyfile.file=/itzixi-disk1/logs/itzixi-web/log.log4jlog4j.appender.dailyfile .datePattern = ' HH : MM : SS, SS} [%t] [%l] - [%p]%m%n ## show sql 문 부품#logger.com.ibatis = debug#log4j.logger.com.common.jdbc.simpledatasource = debug#log4j.logger.com.ibatis.common.jdbc.scriptrunner = debug#log4j.logger.com .ibatis.sqlmap.engine.impl.sqlmapclientDelegate = debug#log4j.logger.java.sql.sql.connection = debug#log4j.logger.java.sql.statement = debug#log4j.logger.java.sql.predppared = debpargug그림과 같이 디버그를 입력하면 SQL 문이 인쇄됩니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.