溫馨提示×

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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女