您的位置:首页 > 其它

SLF4j、log4j管理系统日志(Maven)

2016-12-05 00:00 330 查看
摘要: 一个系统中,日志是占据很重要的一个位置。说明一下怎样配置使用slf4j和log4j组合使用日志输出。

导入jar

使用maven配置文件pom.xml,获取jar包。

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</dependency>

之后会添加一些jar文件:

slf4j-api-1.7.21.jar

slf4j-log4j12-1.7.21.jar

log4j-1.2.17jar

注意:如果已经导入 log4j-1.2.17jar包,不管什么版本。都不会再重新导入log4j的jar文件了。

###编写测试代码
我们使用单元测试编写测试代码,如下:

package test.com.test;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LogTest {
private Logger logger = LoggerFactory.getLogger(LogTest.class);
@Test
public void logTest(){
logger.debug("debug test");
logger.info("info test");
logger.warn("warn test");
logger.error("error test");
}
}

运行结果:

log4j:WARN No appenders could be found for logger (test.com.test.LogTest).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Process finished with exit code 0

出现了错误,首先定位,没有日志配置文件,也就是log4j.properties文件了。

###配置log4j.properties

因为是一个简单的测试,我们这里就使用log4j.properties,其实讲道理的话,最好是使用logback.xml日志配置文件,这个文件可以定义更多的日志输出样式,但是这个不是本章节的内容了。我有时间在写一下。
下面是文件内容,可以先copy尝试:

log4j.rootCategory=INFO,stdout,R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}  %p %c{1}.%M(%l)                | %m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=test.log
log4j.appender.R.MaxFileSize=10000KB
log4j.appender.R.Threshold = INFO
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}  %p %c{1}.%M(%L) | %m%n

OK,正常输出日志了,在控制台、tesy.log文件中都有输出。

我们来简单说一下log4j.properties配置文件,还是来个传送门吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SLF4J LOG4J Maven