CentOS 上 Java 日志格式说明
在 CentOS 上,Java 应用的日志格式并不是由操作系统统一规定,而是由应用使用的日志框架决定。常见框架包括 Logback、Log4j/Log4j2 和 java.util.logging(JUL),各自通过配置文件中的 pattern/ConversionPattern 来定义输出格式。系统仅提供运行环境(如 systemd 的 journald 或 rsyslog),最终格式仍取决于应用自身配置。
常见框架的默认或常用格式示例
Logback 常用格式
典型 pattern:%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
含义示例:日期时间(到毫秒)、线程名、左对齐5字符日志级别、logger 名(最长36)、消息与换行。
Log4j/Log4j2 常用格式
典型 ConversionPattern:%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{1}]:%L - %m%n
含义示例:日期时间、左对齐5字符级别、类名简写、行号、消息与换行。
java.util.logging(JUL)常用格式
典型 SimpleFormatter.format:%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n
含义示例:日期(YYYY-MM-DD)、时间(HH:MM:SS)、日志级别、线程名、类名、消息与换行。
如何在 CentOS 中查看或自定义格式
确认所用日志框架
查看应用依赖(如是否存在 logback-classic、log4j-core 等),或检查应用目录下的配置文件(如 logback.xml、log4j2.xml、log4j.properties、logging.properties)。
自定义格式的常见做法
<encoder><pattern>…</pattern></encoder> 中调整 pattern。<PatternLayout pattern="…"/> 中设置。java.util.logging.SimpleFormatter.format=…,或通过 JVM 参数 -Djava.util.logging.config.file=/path/to/logging.properties 指定配置。使配置生效
重启应用;如使用 JUL 的 -D 参数方式,确保启动脚本中包含该参数。
与系统日志的关系
当应用把日志输出到 控制台(stdout/stderr) 且由 systemd 托管时,日志会进入 journald 或经 rsyslog 写入文件(如 /var/log/messages 或 journalctl 视图)。此时在系统日志中看到的时间、主机、服务名等属于 systemd 的日志元数据,而日志正文的具体格式仍由应用的日志框架 pattern 决定。