您的位置:首页 > 其它

使用slf4j和log4j2记录日志

2017-01-05 00:00 316 查看
摘要: 介绍了使用slf4j和log4j2记录程序日志的方法。

1 入门

1.1 slf4j简介

slf4j是一个日志服务中间层。slf4j封装了多种日志库的接口,使用slf4j后,如果要修改程序使用的日志库,只需要将对应日志库的jar放入classpath,不需要修改任何代码。slf4j为部署时更换日志库提供了灵活便利。

1.2 HelloWorld for slf4j

下面是一个来自slf4j官网的例子。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");
}
}

这段代码展示了slf4j的基本用法。在编译和执行时,需要将slf4j-api-1.7.22.jar和slf4j-simple-1.7.22.jar加入classpath。这两个jar包可以从slf4j官网下载。

1.3 log4j2简介

log4j2是一个日志库。log4j2是log4j的第二版,log4j2和log4j并不兼容。目前,log4j已经停止维护。

1.4 HelloWorld for slf4j & log4j2

slf4j作为日志服务中间层,将调用方和日志库隔离开,调用方不需要知道任何日志库的细节。在部署时,只需将对应日志库的jar包加入classpath,就可以使用这个日志库。 将上面例子中的classpath稍作修改,增加下面3个jar包:log4j-slf4j-impl-2.x.jar、log4j-api-2.x.jar、log4j-core-2.x.jar,移除slf4j-simple-1.7.22.jar, 就成了slf4j和log4j的HelloWorld示例。

如果使用log4j2作为日志库,需要对其进行配置。log4j2的默认配置文件是classpath下的log4j2.xml。下面是一个简单的log4j2.xml文件示例。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>


2 用法

2.1 引入依赖包

在编译时,classpath中需要加入

slf4j-api-1.7.22.jar

在运行时,classpath需要加入

slf4j-api-1.7.22.jar

log4j-slf4j-impl-2.7.jar

log4j-api-2.7.jar

log4j-core-2.7.jar

2.2 导入类

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


2.3 构造logger对象

Logger logger = LoggerFactory.getLogger(MyClass.class);


2.4 记录日志

logger.info("Hello");
logger.debug("Temperature set to {}.", t);


2.5 配置log4j2

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>


3 slf4j说明

3.1 日志级别

slf4j支持以下级别的日志

trace

debug

info

warn

error

4 log4j2说明

4.1 配置文件

4.1.1 配置文件路径

log4j2的默认配置文件是classpath中的log4j2.xml。在启动程序时,可以通过设置参数log4j.configurationFile的方式手动指定log4j2配置文件。

-Dlog4j.configurationFile=log4j2.xml


5 参考资料

slf4j官网 http://www.slf4j.org/

log4j2官网 http://logging.apache.org/log4j/2.x/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  slf4j log4j2