温馨提示×

CentOS Java日志格式是什么

小樊
50
2025-10-09 03:53:01
栏目: 编程语言

CentOS Java日志格式概述
在CentOS系统中,Java应用程序的日志格式主要由所使用的日志框架决定,常见框架包括Log4j(含Log4j 2)、Logback及Java自带的java.util.logging(JULI)。不同框架通过各自的配置文件定义日志格式,以下是具体说明:

1. Log4j(Log4j 1.x)日志格式

Log4j 1.x通过log4j.propertieslog4j.xml配置文件设置日志格式,核心配置项为ConversionPattern(PatternLayout属性),用于定义日志的输出结构。

  • log4j.properties示例
    log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 
    其中,%d表示日期时间(格式为年-月-日 时:分:秒),%-5p表示日志级别(左对齐,占5位),%c{1}表示类名(仅显示最后一级),%L表示行号,%m表示日志消息,%n表示换行符。
  • log4j.xml示例
    <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"/> </layout> </appender> <root> <priority value="info"/> <appender-ref ref="console"/> </root> </log4j:configuration> 
    两者效果一致,均会输出类似2025-10-09 14:30:00 INFO MyClass:123 - This is a log message的日志。

2. Logback日志格式

Logback通过logback.xml配置文件设置日志格式,核心配置项为encoder下的pattern属性,语法与Log4j类似但更灵活。

  • 示例配置
    <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="STDOUT"/> </root> </configuration> 
    其中,%d表示日期时间(可添加毫秒SSS),[%thread]表示线程名(方括号包裹),%-5level表示日志级别(左对齐,占5位),%logger{36}表示logger名称(最长36个字符,超出部分用...省略),%msg表示日志消息,%n表示换行符。
    输出示例:2025-10-09 14:30:00.123 [main] INFO com.example.MyClass - This is a log message

3. java.util.logging(JULI)日志格式

JULI是Java自带的日志框架,通过logging.properties配置文件设置日志格式,核心配置项为SimpleFormatter.format

  • 示例配置
    handlers=java.util.logging.ConsoleHandler java.util.logging.ConsoleHandler.level=INFO java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter java.util.logging.SimpleFormatter.format=%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n 
    其中,%1$tY表示年份(4位),%1$tm表示月份(2位),%1$td表示日期(2位),%1$tH表示小时(24小时制),%1$tM表示分钟,%1$tS表示秒,%4$s表示logger名称(占4位,右对齐),%2$s表示线程名,%5$s表示日志级别(占5位,左对齐),%6$s表示日志消息,%n表示换行符。
    输出示例:2025-10-09 14:30:00 INFO MyClass This is a log message

注意事项

  • 配置文件位置:上述配置文件需放置在Java应用程序的类路径下(如Maven项目的src/main/resources目录),否则框架无法识别。
  • 生效方式:修改配置文件后,需重启Java应用程序才能使新的日志格式生效。
  • 自定义扩展:各框架支持通过占位符扩展日志格式(如%X{user}表示MDC中的用户信息),可根据需求调整。

0