myBatis 3.2.3 打印sql语句问题

haorengoodman 2013-12-04 02:12:46

log4j.rootLogger=info, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[service] %d - %c -%-4r [%t] %-5p %c %x - %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.R.File=../logs/service.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[service] %d - %c -%-4r [%t] %-5p %c %x - %m%n

log4j.logger.com.ibatis = debug
log4j.logger.com.ibatis.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.Connection = debug
log4j.logger.java.sql.Statement = debug
log4j.logger.java.sql.PreparedStatement = debug,R
log4j.logger.java.sql.ResultSet =debug


log4j.properties 文件内容如上
以下是几个关键的jar文件
log4j-1.2.17.jar
mybatis-3.2.3.jar
slf4j-log4j12-1.7.5.jar
slf4j-api-1.7.5.jar

问题:在控制台无法打印sql语句,求解
...全文
1031 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
mdfntom 2015-03-26
  • 打赏
  • 举报
回复
引用 14 楼 fangmingshijie 的回复:
看看你mybatis-config.xml配置?下面是我以前测试写的


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>
《----一下设置很重要》
<settings><setting name="logImpl" value="LOG4J"/></settings>

    <typeAliases>
  	   <package name="com.user.entity"/>
 	</typeAliases>
    <mappers>  
  		 <mapper resource="com/tables/xml/UserMapper.xml" /> 
    </mappers>  
</configuration> 


log4j.xml


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">


《----一下设置很重要》
	<appender name="appender" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="D:/logs/debug.log" />
		<param name="Append" value="true" />
		<param name="threshold" value="DEBUG" />
		<param name="DatePattern" value="'.'yyyy-MM-dd'.txt'" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[xxoo] %p [%t] %c{1}.%M(%L) | %m%n" />
		</layout>
	</appender>
	<logger name="com.ibatis" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.Connection" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.Statement" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.PreparedStatement" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.ResultSet" additivity="true">

		<level value="debug" />

	</logger>


《----一下设置很重要》
	<root>
		<priority value="debug" />
		<appender-ref ref="appender" />
	</root>
</log4j:configuration>


大神啊 终于打印出sql了
七夜天书 2015-01-21
  • 打赏
  • 举报
回复
麻烦你处理一下你原来处理过的问题,谢谢!
skg53970948 2014-12-17
  • 打赏
  • 举报
回复
引用 19 楼 straff 的回复:
办 [quote=引用 14 楼 fangmingshijie 的回复:] 看看你mybatis-config.xml配置?下面是我以前测试写的


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>
《----一下设置很重要》
<settings><setting name="logImpl" value="LOG4J"/></settings>

    <typeAliases>
  	   <package name="com.user.entity"/>
 	</typeAliases>
    <mappers>  
  		 <mapper resource="com/tables/xml/UserMapper.xml" /> 
    </mappers>  
</configuration> 


log4j.xml


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">


《----一下设置很重要》
	<appender name="appender" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="D:/logs/debug.log" />
		<param name="Append" value="true" />
		<param name="threshold" value="DEBUG" />
		<param name="DatePattern" value="'.'yyyy-MM-dd'.txt'" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[xxoo] %p [%t] %c{1}.%M(%L) | %m%n" />
		</layout>
	</appender>
	<logger name="com.ibatis" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.Connection" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.Statement" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.PreparedStatement" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.ResultSet" additivity="true">

		<level value="debug" />

	</logger>


《----一下设置很重要》
	<root>
		<priority value="debug" />
		<appender-ref ref="appender" />
	</root>
</log4j:configuration>


为什么我加了<settings><setting name="logImpl" value="LOG4J"/></settings>以后 启动tomcat一直报 “The setting logImpl is not known. Make sure you spelled it correctly (case sensitive).”的错[/quote] 你的mybatis.jar不对 要用mybatis-3.2.3
straff 2014-05-09
  • 打赏
  • 举报
回复
引用 14 楼 fangmingshijie 的回复:
看看你mybatis-config.xml配置?下面是我以前测试写的


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>
《----一下设置很重要》
<settings><setting name="logImpl" value="LOG4J"/></settings>

    <typeAliases>
  	   <package name="com.user.entity"/>
 	</typeAliases>
    <mappers>  
  		 <mapper resource="com/tables/xml/UserMapper.xml" /> 
    </mappers>  
</configuration> 


log4j.xml


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">


《----一下设置很重要》
	<appender name="appender" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="D:/logs/debug.log" />
		<param name="Append" value="true" />
		<param name="threshold" value="DEBUG" />
		<param name="DatePattern" value="'.'yyyy-MM-dd'.txt'" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[xxoo] %p [%t] %c{1}.%M(%L) | %m%n" />
		</layout>
	</appender>
	<logger name="com.ibatis" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.Connection" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.Statement" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.PreparedStatement" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.ResultSet" additivity="true">

		<level value="debug" />

	</logger>


《----一下设置很重要》
	<root>
		<priority value="debug" />
		<appender-ref ref="appender" />
	</root>
</log4j:configuration>


为什么我加了<settings><setting name="logImpl" value="LOG4J"/></settings>以后 启动tomcat一直报 “The setting logImpl is not known. Make sure you spelled it correctly (case sensitive).”的错
haorengoodman 2013-12-05
  • 打赏
  • 举报
回复
引用 11 楼 fangmingshijie 的回复:
MyBatis provides logging information through the use of an internal log factory. The internal log factory will delegate logging information to one of the following log implementations: • SLF4J • Apache Commons Logging • Log4J • JDK logging The logging solution chosen is based on runtime introspection by the internal MyBatis log factory. The MyBatis log factory will use the first logging implementation it finds (implementations are searched in the above order). If MyBatis finds none of the above implementations, then logging will be disabled.
难道会跟strut2的配置文件和spring的配置文件中的某个配置项有关系?
haorengoodman 2013-12-05
  • 打赏
  • 举报
回复
引用 11 楼 fangmingshijie 的回复:
MyBatis provides logging information through the use of an internal log factory. The internal log factory will delegate logging information to one of the following log implementations: • SLF4J • Apache Commons Logging • Log4J • JDK logging The logging solution chosen is based on runtime introspection by the internal MyBatis log factory. The MyBatis log factory will use the first logging implementation it finds (implementations are searched in the above order). If MyBatis finds none of the above implementations, then logging will be disabled.
slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5.jar 这两个去掉还是不行,能打出更多的日志,但是无论我怎么调,log4j.xml还是log4j.properties文件的各种配,都没有办法打印出sql语句
  • 打赏
  • 举报
回复
MyBatis provides logging information through the use of an internal log factory. The internal log factory will delegate logging information to one of the following log implementations: • SLF4J • Apache Commons Logging • Log4J • JDK logging The logging solution chosen is based on runtime introspection by the internal MyBatis log factory. The MyBatis log factory will use the first logging implementation it finds (implementations are searched in the above order). If MyBatis finds none of the above implementations, then logging will be disabled.
  • 打赏
  • 举报
回复
把你的slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5.jar先去掉看看
haorengoodman 2013-12-05
  • 打赏
  • 举报
回复
引用 7 楼 fangmingshijie 的回复:
这个需要配置一个log4j.xml文件才行。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

  <appender name="intffile" class="org.apache.log4j.DailyRollingFileAppender">
      <param name="File" value="/log/logic_intf.log"/>
      <param name="Append" value="true"/>
      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
      <param name="Threshold" value="debug"/> 
      <layout class="org.apache.log4j.PatternLayout">
         <!-- The default pattern: Date Priority [Category] Message\n -->
         <param name="ConversionPattern" value="%p|%-d{yyyy-MM-dd HH\:mm\:ss}%m%n"/>
      </layout>
   </appender>

   <root>
      <level  value= "debug"/> 
      <appender-ref ref="intffile"/>
   </root>

</log4j:configuration>
还是不行,求大版主解救啊,让人抓狂的节奏啊
haorengoodman 2013-12-05
  • 打赏
  • 举报
回复
引用 7 楼 fangmingshijie 的回复:
这个需要配置一个log4j.xml文件才行。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

  <appender name="intffile" class="org.apache.log4j.DailyRollingFileAppender">
      <param name="File" value="/log/logic_intf.log"/>
      <param name="Append" value="true"/>
      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
      <param name="Threshold" value="debug"/> 
      <layout class="org.apache.log4j.PatternLayout">
         <!-- The default pattern: Date Priority [Category] Message\n -->
         <param name="ConversionPattern" value="%p|%-d{yyyy-MM-dd HH\:mm\:ss}%m%n"/>
      </layout>
   </appender>

   <root>
      <level  value= "debug"/> 
      <appender-ref ref="intffile"/>
   </root>

</log4j:configuration>
大版主求解决,你的xml文件我试了,还是不行,大版主能不能稍微楼一眼我上面贴出来的jar包,看看是不是因为某些jar文件冲突或者什么原因,另外下面是我的xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
	<layout class="org.apache.log4j.PatternLayout"> 
		<param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" /> 
	</layout> 
</appender> 

<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
	<param name="file" value="${user.home}/foss-framework.log" /> 
	<param name="append" value="true" /> 
	<param name="maxFileSize" value="10MB" /> 
	<param name="maxBackupIndex" value="100" /> 
	<layout class="org.apache.log4j.PatternLayout"> 
		<param name="ConversionPattern" value="%d [%t] %-5p %C{6} (%F:%L) - %m%n" /> 
	</layout> 
</appender> 

<appender name="framework" class="com.deppon.foss.framework.server.components.logger.BufferedAppender">
	<layout class="org.apache.log4j.PatternLayout"> 
		<param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss:sss z}] %5p %c{2}: %m%n" /> 
	</layout> 
</appender> 

<!-- 下面是打印 mybatis语句的配置 --> 
<logger name="com.ibatis" additivity="true"> 
	<level value="DEBUG" /> 
</logger> 

<logger name="java.sql.Connection" additivity="true"> 
	<level value="DEBUG" /> 
</logger> 

<logger name="java.sql.Statement" additivity="true"> 
	<level value="DEBUG" /> 
</logger> 

<logger name="java.sql.PreparedStatement" additivity="true"> 
	<level value="DEBUG" /> 
</logger> 

<logger name="java.sql.ResultSet" additivity="true"> 
	<level value="DEBUG" /> 
</logger> 

<root> 
	<level value="INFO" /> 
	<appender-ref ref="CONSOLE" /> 
	<appender-ref ref="FILE" /> 
	<appender-ref ref="framework" /> 
</root> 
</log4j:configuration>  
  • 打赏
  • 举报
回复
这个需要配置一个log4j.xml文件才行。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

  <appender name="intffile" class="org.apache.log4j.DailyRollingFileAppender">
      <param name="File" value="/log/logic_intf.log"/>
      <param name="Append" value="true"/>
      <param name="DatePattern" value="'.'yyyy-MM-dd"/>
      <param name="Threshold" value="debug"/> 
      <layout class="org.apache.log4j.PatternLayout">
         <!-- The default pattern: Date Priority [Category] Message\n -->
         <param name="ConversionPattern" value="%p|%-d{yyyy-MM-dd HH\:mm\:ss}%m%n"/>
      </layout>
   </appender>

   <root>
      <level  value= "debug"/> 
      <appender-ref ref="intffile"/>
   </root>

</log4j:configuration>
haorengoodman 2013-12-05
  • 打赏
  • 举报
回复
引用 5 楼 huixiangdeqiji 的回复:
logo4J配置文件是不是放在了src的根目录底下 这是我logo4j的 log4j.logger.com.ibatis=info log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=info log4j.logger.com.ibatis.common.jdbc.ScriptRunner=info log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=info log4j.logger.java.sql.Connection=debug log4j.logger.java.sql.Statement=debug log4j.logger.java.sql.PreparedStatement=debug
位置肯定没有问题,因为添加了log4j.properties文件所以控制台有其他的日志打出的,问题就是执行sql的时候没有将sql语句打印出来,(我同时也去class下面找到,路径没有问题,汗) 你的文件我看着就会有问题(在我的工程里面,不要生气气),但是我还是试了一下,还是不行
灰祥的奇迹 2013-12-05
  • 打赏
  • 举报
回复
logo4J配置文件是不是放在了src的根目录底下 这是我logo4j的 log4j.logger.com.ibatis=info log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=info log4j.logger.com.ibatis.common.jdbc.ScriptRunner=info log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=info log4j.logger.java.sql.Connection=debug log4j.logger.java.sql.Statement=debug log4j.logger.java.sql.PreparedStatement=debug
haorengoodman 2013-12-05
  • 打赏
  • 举报
回复
一下是我的工程中的所有jar文件 asm-3.3.jar asm-commons-3.3.jar asm-tree-3.3.jar commons-collections-3.1.jar commons-fileupload-1.2.2.jar commons-io-2.0.1.jar commons-lang3-3.1.jar commons-logging-1.1.1.jar freemarker-2.3.19.jar javassist-3.11.0.GA.jar ognl-3.0.6.jar struts2-core-2.3.14.3.jar struts2-spring-plugin-2.3.14.3.jar xwork-core-2.3.14.3.jar aopalliance.jar aspectjrt.jar aspectjweaver.jar spring-aop-3.2.5.RELEASE.jar spring-aspects-3.2.5.RELEASE.jar spring-beans-3.2.5.RELEASE.jar spring-build-src-3.2.5.RELEASE.jar spring-context-3.2.5.RELEASE.jar spring-context-support-3.2.5.RELEASE.jar spring-core-3.2.5.RELEASE.jar spring-expression-3.2.5.RELEASE.jar spring-instrument-3.2.5.RELEASE.jar spring-instrument-tomcat-3.2.5.RELEASE.jar spring-jdbc-3.2.5.RELEASE.jar spring-jms-3.2.5.RELEASE.jar spring-orm-3.2.5.RELEASE.jar spring-oxm-3.2.5.RELEASE.jar spring-struts-3.2.5.RELEASE.jar spring-test-3.2.5.RELEASE.jar spring-tx-3.2.5.RELEASE.jar spring-web-3.2.5.RELEASE.jar spring-webmvc-3.2.5.RELEASE.jar spring-webmvc-portlet-3.2.5.RELEASE.jar cglib-2.2.2.jar commons-dbcp-1.4.jar commons-pool.jar dom4j-1.6.1.jar log4j-1.2.17.jar mybatis-3.2.3.jar mybatis-spring-1.2.1.jar mysql-connector-java-5.0.8-bin.jar slf4j-api-1.7.5.jar slf4j-log4j12-1.7.5.jar
haorengoodman 2013-12-05
  • 打赏
  • 举报
回复
引用 2 楼 NNTT2010 的回复:

log4j.properties
log4j.rootLogger=DEBUG, Console

#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

log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
这是我的配置文件,楼主可以试一下。告诉我行不行。。
不行啊,我各种log4j的试,都不行,太让人抓狂了,感觉是上面我列出来的那几个关键jar 包的问题,求解就
  • 打赏
  • 举报
回复
appender 后的class改为org.apache.log4j.ConsoleAppender是输出控制台,或者你再配一个class为org.apache.log4j.ConsoleAppender 的<appender节点,root指向这个节点就行。
haorengoodman 2013-12-05
  • 打赏
  • 举报
回复
引用 15 楼 fangmingshijie 的回复:
<settings><setting name="logImpl" value="LOG4J"/></settings> 看看你有没有设置这个
无以言表的感谢,只能用专家分表示一下啦
haorengoodman 2013-12-05
  • 打赏
  • 举报
回复
引用 15 楼 fangmingshijie 的回复:
<settings><setting name="logImpl" value="LOG4J"/></settings> 看看你有没有设置这个
感谢版主,日志终于出来了,对版主的感谢无以言表,稍后结贴, 另外再问版主一下,怎么在log4j.xml文件中把日志配到控制台(现在的日志是显示在D:/logs/debug.log这个文件中的)
  • 打赏
  • 举报
回复
<settings><setting name="logImpl" value="LOG4J"/></settings> 看看你有没有设置这个
  • 打赏
  • 举报
回复
看看你mybatis-config.xml配置?下面是我以前测试写的


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>
《----一下设置很重要》
<settings><setting name="logImpl" value="LOG4J"/></settings>

    <typeAliases>
  	   <package name="com.user.entity"/>
 	</typeAliases>
    <mappers>  
  		 <mapper resource="com/tables/xml/UserMapper.xml" /> 
    </mappers>  
</configuration> 


log4j.xml


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">


《----一下设置很重要》
	<appender name="appender" class="org.apache.log4j.DailyRollingFileAppender">
		<param name="File" value="D:/logs/debug.log" />
		<param name="Append" value="true" />
		<param name="threshold" value="DEBUG" />
		<param name="DatePattern" value="'.'yyyy-MM-dd'.txt'" />
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[xxoo] %p [%t] %c{1}.%M(%L) | %m%n" />
		</layout>
	</appender>
	<logger name="com.ibatis" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.Connection" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.Statement" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.PreparedStatement" additivity="true">

		<level value="debug" />

	</logger>

	<logger name="java.sql.ResultSet" additivity="true">

		<level value="debug" />

	</logger>


《----一下设置很重要》
	<root>
		<priority value="debug" />
		<appender-ref ref="appender" />
	</root>
</log4j:configuration>


加载更多回复(2)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧