使用slf4j和log4j2记录日志
2017-01-05 00:00
316 查看
摘要: 介绍了使用slf4j和log4j2记录程序日志的方法。
这段代码展示了slf4j的基本用法。在编译和执行时,需要将slf4j-api-1.7.22.jar和slf4j-simple-1.7.22.jar加入classpath。这两个jar包可以从slf4j官网下载。
如果使用log4j2作为日志库,需要对其进行配置。log4j2的默认配置文件是classpath下的log4j2.xml。下面是一个简单的log4j2.xml文件示例。
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
trace
debug
info
warn
error
log4j2官网 http://logging.apache.org/log4j/2.x/
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与log4j全面了解
- 使用Sl4j+Logback根据不同日志级别生成文件
- log4j2 异步多线程打印日志
- LogBack入门实践
- 使用log4j2的常用要点
- 看Filters如何玩转日志
- jfinal-slf4j 让jfinal使用slf4j的log api
- log4j2之环境搭建及基础配置
- log4j2之简化封装,告别静态成员变量
- Java日志那点儿事儿
- slf4j
- SLF4J(2)
- SLF4J 的几种实际应用模式--之三:JCL-Over-SLF4J+SLF4J
- slf4j简介
- Log4j2之Appenders
- slf4j-api、slf4j-log4j12以及log4j之间的关系
- 运行时添加log4j2的appender
- Log4j2 Lookup扩展之支持Spring环境变量解析
- 一次idea上使用logback+slf4j乱码的解决,问题不在logback
- 运行环境下动态修改日志级别