项目使用slf4j日志工具:
- pom导入
<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>
- properties配置
### set log levels ###
log4j.rootLogger = debug,stdout,D,E
### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%C %M] %p %m%n
## 输出DEBUG级别以上的日志
log4j.appender.stdout.Threshold = INFO
### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = e:/logs/esimport.log
log4j.appender.D.Append = true
## 输出DEBUG级别以上的日志
log4j.appender.D.Threshold = INFO
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%C %M] %p %m%n
### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名
log4j.appender.E.File = logs/AnalyzeRelation_Error.log
log4j.appender.E.Append = true
## 只输出ERROR级别以上的日志!!!
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss,SSS} [%C %M] %p %m%n
# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN
- 代码中使用
导包:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
得到logger变量
public static final Logger logger = LoggerFactory.getLogger(ImportMain.class);
打印
logger.info("import end. cost:[{}ms]", cost);
- 常见问题
运行程序任然提示以下错误时,说明未正确读取到properties配置文件:
log4j:WARN No appenders could be found for logger (com.appium.framework.automation.util.TestLog).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
log4j.properties应该放在项目的resources目录下。
检查class文件是否包含log4j.properties
若无,检查是否pom里面排除了,检查以下模块配置是否包含log4j.properties
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>log4j.properties</include>
</includes>
</resource>
</resources>