无论我怎么配置spring、mybatis和log4j都不能输出sql语句。这个困扰了我好多天的问题,终于解决掉了。
spring版本:3.2.8
mybatis版本:3.26
log4j版本:1.2.7
a. 配置mybatis_config.xml在settings中添加logImpl属性
<settings>
<setting name="logImpl" value="LOG4J"/> </settings>
b. 写一个servlet,如下
import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;public class InitLog4jServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overridepublic void init() throws ServletException {super.init();org.apache.ibatis.logging.LogFactory.useLog4JLogging();System.out.println("************tell mybatis use log4j************");}}
c. 在web.xml中配置启动servlet
<servlet>
<servlet-name>InitLog4jServlet</servlet-name>
<servlet-class>com.xy.servlet.InitLog4jServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
d. log4j.properties文件内容
#log4j.rootLogger=INFO, stdout#MyBatis 配置,com.xy.mapper是mybatis接口所在包log4j.logger. com.xy.mapper=DEBUG#log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n#log4j.category.org.springframework=INFO按照以上4步,重启项目就好了。。