1.Maven dependence
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>
2.log4j.properties (the default file name, if the file name change, you need to configure in the web.xml file)
log4j.rootLogger=INFO,stdout,info,warn,error
#\u63A7\u5236\u53F0\u8F93\u51FA 输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=INFO
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}] %l %m %n
#INFO\u65E5\u5FD7
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.File =e://logs/test/info.log
log4j.appender.info.datePattern='.'yyyy-MM-dd
log4j.appender.info.append=true
log4j.appender.info.Threshold=INFO
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}] %l %m %n
#WARN\u65E5\u5FD7
log4j.logger.warn=warn
log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender
log4j.appender.warn.File =e://logs/test/warn.log
log4j.appender.warn.datePattern='.'yyyy-MM-dd
log4j.appender.warn.append=true
log4j.appender.warn.Threshold=WARN
log4j.appender.warn.layout=org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}] %l %m %n
#ERROR\u65E5\u5FD7
log4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.File =e://logs/test/error.log
log4j.appender.error.datePattern='.'yyyy-MM-dd
log4j.appender.error.append=true
log4j.appender.error.Threshold=ERROR
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}] %l %m %n
##\u6267\u884C\u6162\u7684SQL
#log4j.logger.com.alibaba.druid.filter.stat.StatFilter=ERROR,slowsql
#log4j.appender.slowsql=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.slowsql.File =e://logs/test/slow_sql.log
#log4j.appender.slowsql.datePattern='.'yyyy-MM-dd
#log4j.appender.slowsql.append=true
#log4j.appender.slowsql.layout=org.apache.log4j.PatternLayout
#log4j.appender.slowsql.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] %m %n
#
##\u63A7\u5236\u53F0\u8F93\u51FA\u6240\u6709SQL
#log4j.logger.com.wstro.dao=DEBUG,sql
#log4j.appender.sql=org.apache.log4j.ConsoleAppender
#log4j.appender.sql.Target=System.out
#log4j.appender.sql.layout=org.apache.log4j.PatternLayout
#log4j.appender.sql.layout.ConversionPattern=%m %n
Test LogTest
package test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogTest {
private static final Logger LOG = LoggerFactory.getLogger(LogTest.class);
public static void main(String[] args) {
LOG.info("info111");
LOG.error("error111");
LOG.warn("warn111");
System.out.println("Hello World!");
}
}
Remaining problem
- Do not print high-grade low-grade logs, for example, info log files do not print error and warn, print only info