CentOS Java日志格式是什么
导读:CentOS Java日志格式概述 在CentOS系统中,Java应用程序的日志格式主要由所使用的日志框架决定,常见框架包括Log4j(含Log4j 2)、Logback及Java自带的java.util.logging(JULI)。不同框...
CentOS Java日志格式概述
在CentOS系统中,Java应用程序的日志格式主要由所使用的日志框架决定,常见框架包括Log4j(含Log4j 2)、Logback及Java自带的java.util.logging(JULI)。不同框架通过各自的配置文件定义日志格式,以下是具体说明:
1. Log4j(Log4j 1.x)日志格式
Log4j 1.x通过log4j.properties
或log4j.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中的用户信息),可根据需求调整。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Java日志格式是什么
本文地址: https://pptw.com/jishu/721191.html