博客
关于我
slf4j日志
阅读量:527 次
发布时间: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/

    你可能感兴趣的文章
    2017年前端框架、类库、工具大比拼
    查看>>
    wxWidgets源码分析(1) - App启动过程
    查看>>
    wxWidgets源码分析(3) - 消息映射表
    查看>>
    wxWidgets源码分析(5) - 窗口管理
    查看>>
    wxWidgets源码分析(7) - 窗口尺寸
    查看>>
    wxWidgets源码分析(8) - MVC架构
    查看>>
    wxWidgets源码分析(9) - wxString
    查看>>
    Mybatis Generator最完整配置详解
    查看>>
    [白话解析] 深入浅出熵的概念 & 决策树之ID3算法
    查看>>
    [梁山好汉说IT] 梁山好汉和抢劫银行
    查看>>
    [源码解析] 消息队列 Kombu 之 基本架构
    查看>>
    [源码分析] 消息队列 Kombu 之 启动过程
    查看>>
    [源码分析] 消息队列 Kombu 之 Consumer
    查看>>
    抉择之苦
    查看>>
    wx.NET CLI wrapper for wxWidgets
    查看>>
    Silverlight for linux 和 DLR(Dynamic Language Runtime)
    查看>>
    ASP.NET MVC Action Filters
    查看>>
    Windows SharePoint Services 3.0 Service Pack 2
    查看>>
    兰州大学百年校庆--风雨百年萃英路
    查看>>
    WCF WebHttp Services in .NET 4
    查看>>