博客
关于我
logger4j 日志配置内,各种符号详解
阅读量:791 次
发布时间:2023-02-06

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

log4j日志格式化指南

log4j是Java中广泛使用的日志记录库,其强大的配置能力也使其支持丰富的日志格式化选项。本文将详细介绍常用的日志格式化转换符及其使用方法。

1. 常用日志格式化转换符

log4j提供了多种转换符用于日志记录,以下是常见转换符及其用法:

  • %p:输出日志信息优先级,支持DEBUG、INFO、WARN、ERROR、FATAL等级别。
  • %d:输出时间点,默认为ISO8601格式,例如:2002-10-18 22:10:28,921。
  • %r:输出自应用启动到输出日志信息所消耗的毫秒数。
  • %c:输出日志信息所属的类目,通常为类全名。
  • %t:输出产生日志事件的线程名。
  • %l:输出代码中的行数信息,包括类名、方法和行号,格式为类名线程(文件:行号)。
  • %x:输出与当前线程相关联的NDC(嵌套诊断环境),适用于多客户多线程应用。
  • %%:输出一个 "%" 字符。
  • %F:输出日志消息产生时所在的文件名称。
  • %L:输出代码中的行号。
  • %m:输出日志信息的具体内容。
  • %n:输出换行符,Windows平台为"\r\n",Unix平台为"\n"。

2. 格式化字符串示例

格式化字符串可通过配置log4j.properties或使用代码注入的方式实现。以下是一个典型的示例:

// 输出日志时间点和行号private static final Logger logger = LoggerFactory.getLogger(MyClass.class);// 示例日志输出logger.debug("进入方法MyClass#myMethod(),参数为{}", parameters);// 输出:2018-04-18 13:45:56,123 [DEBUG] MyClass(MyClass.java:123) - 进入方法MyClass#myMethod(),参数为[参数]// 使用格式化字符串logger.error("错误信息:%s", new RuntimeException("错误描述"));// 输出:2018-04-18 13:45:56,123 [ERROR] MyClass(MyClass.java:456) - 错误信息:java.lang.RuntimeException: 错误描述

3. 格式化字符串的高级使用

通过合理使用格式化字符串,可以实现多种日志记录需求:

  • 左对齐字段:使用%-5p可以确保p级别的日志左对齐并占用5个字符,若信息不足则用空格补齐。
  • 自定义时间格式:可通过%t{yyyy-MM-dd HH:mm:ss,SSS}自定义时间格式,例如:%t{HH:mm:ss.SSS}

4. 注意事项

  • 转换符优先级:转换符执行顺序遵循%c%d%p%F%L%m%n等顺序。
  • 线程安全:在多线程环境中,确保Logger实例正确管理,以避免线程安全问题。
  • 性能监控:日志记录过于详细可能影响性能,需根据实际需求调整日志级别和格式。

通过合理配置log4j的日志格式化选项,可以实现对日志信息的精确控制,满足不同场景下的需求。

转载地址:http://icufk.baihongyu.com/

你可能感兴趣的文章
Log4j2.xml中动态读取配置
查看>>
Log4j2滚动策略深度解析:保持日志轻量高效
查看>>
Log4j使用总结
查看>>
Log4j使用配置总结
查看>>
log4j分离日志输出 自定义过滤 自定义日志文件
查看>>
Log4j日志级别
查看>>
Log4j日志级别 转
查看>>
log4j日志输出格式
查看>>
log4j日志输出格式一览
查看>>
log4j框架搭建
查看>>
Log4j漏洞?一行代码都不改就能永久修复?
查看>>
Log4J的配置
查看>>
log4j的配置说明
查看>>
log4j补充
查看>>
log4j记录日志
查看>>
Log4j输出到控制台成功,写入文件失败 - Log4j和commons log的整合
查看>>
Log4j配置详解和实例
查看>>
Log4Net组件的应用详解
查看>>
log4net配置,正在用
查看>>
Logback configuration error detected:D:\log\exchange-platform\info.2021-07-27.log (系统找不到指定的路径。)
查看>>