- <strong>#########################################################################
- #Root Logger
- #log4j.rootLogger = [ level ] , appenderName, appenderName,
- #ConversionPattern:%d{yyyy-MM-dd-HH\:mm\:ss,SSS} [%t] [%c] [%p] - %m%n
- #FilePath = /opt/uploads/maven_logs/maven_web.log
- #########################################################################
- #將Mybatis log4j運行級別調到DEBUG可以在控制台打印出Mybatis運行的sql語句
- log4j.rootLogger=DEBUG,Console,File
- ### 把日志信息輸出到控制台 ###
- log4j.appender.Console=org.apache.log4j.ConsoleAppender
- log4j.appender.Console.Target=System.out
- log4j.appender.Console.layout = org.apache.log4j.PatternLayout
- log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd-HH\:mm\:ss,SSS} [%t] [%c] [%p] - %m%n
- ### 把日志信息輸出到文件:/opt/uploads/maven_logs/maven_web.log ###
- log4j.appender.File = org.apache.log4j.DailyRollingFileAppender
- log4j.appender.File.File = /opt/uploads/maven_logs/maven_web.log
- log4j.appender.File.Threshold = DEBUG
- log4j.appender.File.layout = org.apache.log4j.PatternLayout
- log4j.appender.File.layout.ConversionPattern =%d{yyyy-MM-dd-HH\:mm\:ss,SSS} [%t] [%c] [%p] - %m%n
- ###顯示SQL語句部分
- log4j.logger.com.mybatis=DEBUG
- log4j.logger.com.mybatis.common.jdbc.SimpleDataSource=DEBUG
- log4j.logger.com.mybatis.common.jdbc.ScriptRunner=DEBUG
- log4j.logger.com.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
- log4j.logger.java.sql.Connection=DEBUG
- log4j.logger.java.sql.Statement=DEBUG
- log4j.logger.java.sql.PreparedStatement=DEBUG</strong>
各位看官,我這番配置是沒問題吧?
但是在控制台SQL死活不出來。上網search...
很多很多,看的我眼花繚亂,像什么配置不通(此處槽點,我只是SQL語句打印不出來,其他一切正常,因此忽略)、需要slf4j-api-1.6.1.jar和slf4j-log4j12.-1.6.1.jar (maven庫中有,忽略!),然后就是在網上找別人的配置,但是並沒有什么卵用!
我急啊!
直接去mybatis文檔查,興許會有關於log的......
功夫不負有心人,果然有!摘抄一段:
- Logging
- Mybatis內置的日志工廠提供日志功能,具體的日志實現有以下幾種工具:
- SLF4J
- Apache Commons Logging
- Log4j 2
- Log4j
- JDK logging
- <span style="color: #ff0000;">具體選擇哪個日志實現工具由MyBatis的內置日志工廠確定</span>。它會使用最先找到的(按上文列舉的順序查找)。 如果一個都未找到,日志功能就會被禁用。
- 不少應用服務器的classpath中已經包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis會把它作為具體的日志實現。記住這點非常重要。這將意味着,在諸如 WebSphere的環境中——WebSphere提供了Commons Logging的私有實現,你的Log4J配置將被忽略。 這種做法不免讓人悲催,MyBatis怎么能忽略你的配置呢?事實上,因Commons Logging已經存 在了,按照優先級順序,Log4J自然就被忽略了!
我去!mybatis還會這么玩啊!搞死我了。但是文檔中並有直接說明如何通過修改配置文件實現,但是這個文檔提供了對log4j的詳細配置,值得看一下。文檔中說了一大堆代碼實現的,不喜歡這種。既然給了思路了是mybatis搞的鬼, 那就繼續上網找資料...
終於,碰到了好心人,解了我的惑!
好心人鏈接中有,我這兒在贅述一遍:
在mybatis-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>
- <properties>
- <property name="dialect" value="mysql" />
- </properties>
- <settings>
- <setting name="logImpl" value="LOG4J" />
- </settings>
- </configuration>
重要的是:
- <setting name="logImpl" value="LOG4J" />
在mybatis的配置文件中:setting節點里配置的值會直接改寫Configuration對應的變量值,這些變量描述的是Mybatis的全局運行方式,如果對這些屬性的含義不熟悉的話建議不要配置,使用默認值即可。
具體的各位看官,自行查找資料,此處不做過多贅述...
OK!
技能get!
解決了!!。。。世界和平了, 阿門。。。先寫到這...頭昏腦漲的