log4j2日誌配置

<?xml version="1.0" encoding="UTF-8" ?>
<Configuration status="OFF">
  <!-- Properties 模塊 : 配置一些全局的屬性值 -->
  <properties>
    <property name="LOG_HOME">/data/logs</property>
    <property name="APP_NAME">cb-service-user</property>
    <!-- PatternLayout 日誌輸出格式模板:
      %d:輸出日誌時間點的日期或時間,默認格式爲ISO8601,也能夠在其後指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}
      %-5p :輸出日誌信息的優先級,即DEBUG,INFO,WARN,ERROR,FATAL(級別從左顯示5個字符寬度)。
      %M:輸出產生日誌信息的方法名。
      %F:輸出日誌消息產生時所在的文件名稱。
      %L:日誌輸出所在行數 日誌輸出所在行數
      %t:輸出產生該日誌事件的線程名
      %msg:日誌消息
      %r:輸出自應用程序啓動到輸出該log信息耗費的毫秒數
      %n:是換行符
      %X{xxx}:輸出在ThreadContext中變量xxx的值,該值須要在ThreadContext中進行設置,
                service在ConsumerLogFilter和ProviderLogFilter設置;
                web統一在Interceptor中設置
     -->
    <property name="CONSOLE_PATTERN_LAYOUT">[%d{HH:mm:ss.SSS}] [%-5p] [%F:%M] %msg%rEx%n</property>
    <property name="CONSOLE_PATTERN_LAYOUT_APP">[%d{HH:mm:ss.SSS}] [%-5p] [%F:%M:%L] [%X{MSG-NO}] [%X{TYPE}] [%X{REMOTE-HOST}:%X{REMOTE-PORT} -> %X{LOCAL-HOST}:%X{LOCAL-PORT}] %msg%rEx%n</property>
    <property name="PATTERN_LAYOUT">[%d] [%-5p] [%F:%M] %msg%rEx%n</property>
    <property name="PATTERN_LAYOUT_APP">[%d] [%-5p] [%F:%M:%L] [%X{MSG-NO}] [%X{TYPE}] [%X{REMOTE-HOST}:%X{REMOTE-PORT} -> %X{LOCAL-HOST}:%X{LOCAL-PORT}] %msg%rEx%n</property>
  </properties>

  <!-- Appenders 模塊 : 日誌輸出相關配置 -->
  <Appenders>
    <!-- 輸出到Console -->
    <!-- Console節點 配置控制檯日誌輸出:
         name:指定Appender的名字.
         target: SYSTEM_OUT 或 SYSTEM_ERR,通常只設置默認:SYSTEM_OUT.
         PatternLayout: 輸出格式,採用properties中定義的格式.-->
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="${CONSOLE_PATTERN_LAYOUT_APP}" />
    </Console>

    <!-- 輸出到滾動保存的文件 -->
    <RollingRandomAccessFile name="RollingRandomAccessFile"
      fileName="${LOG_HOME}/${APP_NAME}.log"
      filePattern="${LOG_HOME}/$${date:yyyy-MM}/${APP_NAME}.log.%d{yyyy-MM-dd}.%i">
      <PatternLayout pattern="${PATTERN_LAYOUT_APP}" />
      <Policies>
        <!-- TimeBasedTriggeringPolicy 經過時間策略來對log文件進行處理
             interval 的值含義取決於filePattern定義的最小的時間粒度,當前爲一個月 -->
        <TimeBasedTriggeringPolicy interval="1" modulate="true" />
        <!--SizeBasedTriggeringPolicy 基於對log文件大小的判斷策略:
            當log文件大於設定的閾值時,將觸發封存動做。
            可設定的log文件大小的單位有bytes、KB、MB或GB。-->
        <SizeBasedTriggeringPolicy size="500 MB" />
      </Policies>
    </RollingRandomAccessFile>

    <!--單獨處理ERROR級別的日誌,並把該日誌放到logs/xxx-error.log文件中 -->
    <RollingFile name="RollingFileError" fileName="${LOG_HOME}/${APP_NAME}-error.log"
      filePattern="${LOG_HOME}/error/${APP_NAME}-error.log.%i">
      <!-- ThresholdFilter 過濾器:
           控制檯只輸出level及以上級別的信息(onMatch),其餘的直接拒絕(onMismatch)
           日誌的級別: ALL< Trace < DEBUG < INFO < WARN < ERROR < FATAL < OFF。-->
      <ThresholdFilter level="ERROR" />
      <PatternLayout pattern="${PATTERN_LAYOUT_APP}" />
      <Policies>
        <SizeBasedTriggeringPolicy size="500 MB" />
      </Policies>
    </RollingFile>

    <!--DRUID的日誌記錄追加器 -->
    <RollingFile name="druidSqlRollingFile" fileName="${LOG_HOME}/${APP_NAME}-sql.log"
      filePattern="${LOG_HOME}/$${date:yyyy-MM}/${APP_NAME}-sql.log.%d{yyyy-MM-dd}.%i">
      <PatternLayout pattern="${PATTERN_LAYOUT_APP}" />
      <Policies>
        <SizeBasedTriggeringPolicy size="500 MB" />
        <TimeBasedTriggeringPolicy />
      </Policies>
    </RollingFile>

  </Appenders>

  <Loggers>
    <!-- Logger同步日誌配置,通常須要將additivity設置爲false,日誌不會重複打印不然還會在root裏面打印 -->
    <Logger name="com.joinpay.cb" level="DEBUG" additivity="false">
      <AppenderRef ref="Console" />
      <AppenderRef ref="RollingRandomAccessFile" />
      <AppenderRef ref="RollingFileError" />
    </Logger>

    <!--記錄druid-sql的記錄
     AsyncLogger異步日誌配置,一樣須要將additivity設置爲false
     -->
    <AsyncLogger name="druid.sql.Statement" level="DEBUG" additivity="false">
      <AppenderRef ref="Console" />
    </AsyncLogger>

    <!-- level="INFO" 只可以輸出level級別是INFO及INFO以上的
         Root日誌必須配置至關於父類日誌,level默認爲Error
    -->
    <Root level="INFO">
      <AppenderRef ref="druidSqlRollingFile" level="INFO" />
    </Root>
  </Loggers>
</Configuration>
相關文章
相關標籤/搜索