博客
关于我
slf4j日志
阅读量:540 次
发布时间:2019-03-08

本文共 1074 字,大约阅读时间需要 3 分钟。

slf4j与log4j2配置与使用技巧

作为一个日志标准,slf4j(Simple Logging Facade for Java)并非真正的日志实现,而是一个抽象层。其设计初衷是为了允许开发者灵活选择日志框架,例如log4j2,从而统一日志处理流程。

log4j2配置说明

1. 配置文件规范

在使用log4j2前,需要配置自定义的log4j2.xml文件。这个文件是日志框架的核心配置文件,决定了日志输出格式、存储位置及级别管理等功能。

2. 日志格式选项

log4j2支持多种日志格式模式,最常见的是使用与printf格式类似的占位符。以下是常见的格式示例:

  • %d{yyy-MM-dd HH:mm:ss}:日期时间格式,默认输出为"2002-10-18 22:10:28"。
  • %L:记录日志事件的代码位置,如“com.example.MyClass.java:45”。
  • %c:日志类别全称,如“com.example.MyClass”。
  • %m:日志信息内容。
  • %p:日志优先级,依次从低到高为:TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF。
3. 输出目的地(Appender)

在log4j2中,通过appender(输出目的地)指定日志的存储位置或输出渠道。常用的appender类型包括:

  • ConsoleAppender:将日志输出至默认控制台。
  • FileAppender:将日志写入文件。
  • RollingFileAppender:支持日志 rolls(循环)功能,文件大小超限时自动新建新文件。
4. 日志级别系统

log4j2定义了8个日志级别,按优先级从低到高依次为:TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF

根据设定的日志级别,程序会自动过滤日志输出。设级别为"INFO"时,只会记录INFO及更高级别的日志。


slf4j日志打印优势

slf4j的局限性在于其日志打印方式的设计。其优势体现在两个方面:

  • 格式化输出,避免字符串拼接

    使用slf4j的格式化字符串,直接将变量代入日志内容中,无需手动拼接字符串。

    logger.info("Set score {} for Person {} ok.", score, p.getName());
  • 灵活性高,适配多种日志框架

    slf4j本身不带日志实现,可以通过桥接(Facade Pattern)将其与其他日志框架(如Log4j2、JBoss.log、SLF4E等)集成,实现统一日志管理。

  • 转载地址:http://altiz.baihongyu.com/

    你可能感兴趣的文章
    Netty原理分析及实战(三)-高可用服务端搭建
    查看>>
    Netty原理分析及实战(四)-客户端与服务端双向通信
    查看>>
    Netty发送JSON格式字符串数据
    查看>>
    Netty和Tomcat的区别已经性能对比
    查看>>
    Netty基础—1.网络编程基础二
    查看>>
    Netty基础—3.基础网络协议二
    查看>>
    Netty基础—7.Netty实现消息推送服务一
    查看>>
    Netty多线程 和 Redis6 多线程对比
    查看>>
    Netty学习总结(2)——Netty的高性能架构之道
    查看>>
    Netty学习总结(3)——Netty百万级推送服务
    查看>>
    Netty学习总结(5)——Netty之TCP粘包/拆包问题的解决之道
    查看>>
    Netty学习总结(6)——Netty使用注意事项
    查看>>
    Netty客户端断线重连实现及问题思考
    查看>>
    Netty工作笔记0001---Netty介绍
    查看>>
    Netty工作笔记0003---IO模型-BIO-Java原生IO
    查看>>
    Netty工作笔记0006---NIO的Buffer说明
    查看>>
    Netty工作笔记0007---NIO的三大核心组件关系
    查看>>
    Netty工作笔记0008---NIO的Buffer的机制及子类
    查看>>
    Netty工作笔记0009---Channel基本介绍
    查看>>
    Netty工作笔记0011---Channel应用案例2
    查看>>