log configuration
There is a log and then everything can be printed (including sql, exceptions, general information) The reason for logback to replace log4j
logback can switch log4j in it, slf4j contains log4j (this is the default), after integrating slf4j, use slf4j (automatically identify and switch according to the jar package you added)
logback log configuration:
1. Download the jar
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.10</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.2</version>
</dependency>
2, web.xml configuration
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>classpath:config_log/logback.xml</param-value>
</context-param>
<listener>
<listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class>
</listener>
3, logback.xml configuration
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true">
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL> true </resetJUL>
</contextListener>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!-- <pattern>%.-1level|%-40.40logger{0}|%msg%n</pattern> -->
<!--<pattern>%d{yyyy/MM/dd-HH:mm:ss} %-5level [%thread] %class{5}:%line>>%msg%n</pattern> -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.base}/logs/esteelds/esteelLogFile_%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<minIndex> 1 </minIndex>
<maxIndex>100</maxIndex>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>5MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<!--Maximum size of log file-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
<logger name="org.logicalcobwebs" level="ERROR" />
<logger name="com.esteel" level="INFO" />
<logger name="org.springframework.web" level="INFO" />
<logger name="org.springframework.jdbc" level="INFO" />
<logger name="org.mybatis" level="INFO" />
<logger name="org.springframework.beans" level="INFO" />
<logger name="com.esteel.mybatis" level="INFO" />
<!-- <logger name="org.apache.ibatis" level="DEBUG">//////////////////////mysql print log
<appender-ref ref="STDOUT"/>
</logger>
<logger name="java.sql" level="debug">
<appender-ref ref="STDOUT"/>
</logger> -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
</configuration>
4. Application:
(1) print sql
logback.xml added:
<logger name="org.apache.ibatis" level="DEBUG">//////////////////////mysql print log
<appender-ref ref="STDOUT"/>
</logger>
<logger name="java.sql" level="debug">
<appender-ref ref="STDOUT"/>
</logger>
mybatis-config.xml add
<setting name="logImpl" value="STDOUT_LOGGING"/>///In fact, this can be
(2) Hardcoded print in Java
package com.stu.system.action;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class BlogAction{
//Define a global logger, obtained through LoggerFactory
private final static Logger logger = LoggerFactory.getLogger (BlogAction.class);
/**
* @param args
*/
public static void main(String[] args) {
logger.info("logback succeeded");
logger.error("logback succeeded");
}
}
refer to:
http://blog.csdn.net/conquer0715/article/details/9365899
http://www.jb51.net/article/71692.htm
http://www.myexception.cn/sql/1735534.html
http://superich2008.iteye.com/blog/2063349