首页主机资讯CentOS Java日志格式是什么

CentOS Java日志格式是什么

时间2025-10-09 11:26:04发布访客分类主机资讯浏览299
导读: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.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中的用户信息),可根据需求调整。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS Java日志格式是什么
本文地址: https://pptw.com/jishu/721191.html
如何自定义Java日志输出 Java日志中如何识别攻击

游客 回复需填写必要信息