SLF4J日志框架

矫情吗;* 2022-07-26 12:23 366阅读 0赞

SLF4J日志框架

概述

  1. 日志框架对于java开发者来说并不陌生,并且其作为线上产品分析bug的有力工具。
  2. Java的简单日志门面( Simple Logging Facade for Java SLF4J)作为一个简单的门面或抽象,
  3. 用来服务于各种各样的日志框架,比如java.util.logginglogbacklog4jSLF4J允许最终用户在部署时集成自己
  4. 想要的日志框架。SLF4J就类似于JDBC访问数据库接口一样,它只不过是接口,真正的实现是由其它框架组件提供的。

SLF4J入门使用

maven pom配置文件

  1. 以下是最简单的使用方法,直接使用slf4j的简单实现,当然可以使用log4jlogback
  2. <!-- SLF4J日志框架 -->
  3. <!-- 1SLF4J api门面 -->
  4. <dependency>
  5. <groupId>org.slf4j</groupId>
  6. <artifactId>slf4j-api</artifactId>
  7. <version>1.7.12</version>
  8. </dependency>
  9. <!-- 2SLF4J api 简单实现 -->
  10. <dependency>
  11. <groupId>org.slf4j</groupId>
  12. <artifactId>slf4j-simple</artifactId>
  13. <version>1.7.12</version>
  14. </dependency>

程序中声明日志对象

  1. /** 声明slf4j对象 */
  2. private static final Logger LOGGER = LoggerFactory
  3. .getLogger(xxx.class);

典型用法

  1. 普通记录日志格式
  2. logger.info("info message {}, i value {}", info, i);//占位符拼接
  3. logger.info("",Object ...objs);//通过使用占位符和可变参数来打印日志更高效
  4. logger.info(""+info+10);//坚决杜绝这种写法
  5. 备注:占位符的方式类似C语言中的输出打印方法。
  6. 异常记录日志
  7. try {
  8. int result = 1 / 0; //java.lang.ArithmeticException: / by zero
  9. } catch (Exception e) {
  10. logger.error("exception error",e);//注意这里的写法,是没有使用占位符的
  11. }

日志级别

  1. error:系统发生了严重的错误, 必须马上进行处理, 否则系统将无法继续运行
  2. warn: 系统能继续运行, 但是必须引起关注.
  3. info: 重要的业务逻辑处理完成. 在理想情况下, INFO的日志信息要能让高级用户和系统管理员理解, 并从日志信息中能知道系统当前的运行状态
  4. debug:主要给开发人员看,开发环境中使用
  5. trace:系统详细信息, 主要给开发人员用, 一般来说, 如果是线上系统的话, 可以认为是临时输出, 而且随时可以通过开关将其关闭

备注:通常使用info和debug的比较多,开发和生产环境通常日志级别配置选择不同级别。

总结

简言之,建议使用SLF4J的而不是直接使用 Log4j, commons logging, logback等具体实现。就好比JDBC编程的时候我们使用的是面向接口编程而不是直接使用实现的对象来编程的。slf4j还通过使用占位符方式而避免字符串拼接产生的性能损耗。

参考

  1. http://www.importnew.com/7450.html
  2. http://macrochen.iteye.com/blog/1399082

发表评论

表情:
评论列表 (有 0 条评论,366人围观)

还没有评论,来说两句吧...

相关阅读

    相关 日志-slf4j

    引入门面日志,处理流程:门面日志api-》适配器转发-》实际日志框架处理-》日志文件 常用日志框架:logback、log4j2、log4j、 常用门面日志框架:slf4

    相关 SLF4J日志框架

    SLF4J日志框架 概述 日志框架对于java开发者来说并不陌生,并且其作为线上产品分析bug的有力工具。 Java的简单日志门面( Simple