log 4 j 2ログフレーム配置ファイル_log 4 j 2.xml

19915 ワード

目次
  • 1.標準設定ファイル
  • .プロファイルノード解析
  • Configrationルートノード
  • Apendersノード
  • ロギングノード
  • .ログレベル
  • .log 4 j.xmlテンプレート
  • 1.標準設定ファイル
    <?xml version="1.0" encoding="UTF-8"?>
     <Configuration status="WARN">
       <Appenders>
         <Console name="Console" target="SYSTEM_OUT">
           <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
         </Console>
       </Appenders>
       <Loggers>
         <Root level="error">
           <AppenderRef ref="Console"/>
         </Root>
       </Loggers>
     </Configuration>
    
     
    2.プロファイルノード解析
  • Configrationルートノード
  • status:ログ印刷レベル
  • Monitorinterval:log 4 j自動再構成の監視間隔時間、単位s、>5 s
  • Apendersノード
  • Consoneノード: Appender
  • name:アプリの名前を指定する
  • target:SYSTEM_OUTまたはSYSTEM_ERRは、デフォルトのみ設定されています。SYSTEM_OUT.
  • Pattern Layout:出力フォーマットは、デフォルトでは設定されていません:%m%n.
  • Fileノード: Appender
  • name:アプリの名前を指定する
  • fileName:出力ログの目的ファイルのフルパスを指定するファイル名
  • Pattern Layout:出力フォーマットは、デフォルトでは設定されていません:%m%n.
  • RollingFileノード: Appender
  • name:アプリの名前を指定する
  • fileName:出力ログの目的ファイルのフルパスを指定するファイル名
  • Pattern Layout:出力フォーマットは、デフォルトでは設定されていません:%m%n.
  • filePattern:新規ログファイルの名前フォーマットを指定します。
  • Policies:スクロールログのポリシーを指定します。いつ新しいログファイルの出力ログを行いますか?TimeBasedTriggeringPolicy:Policiesサブノードは、時間のスクロールポリシーに基づいて、interval属性を使用して、どれぐらいのスクロールを指定しますか?デフォルトは1 hourです。modulate=trueは時間を調整するために使われます。例えば、今は朝3 amです。intervalは4です。最初のスクロールは4 amです。次に8 amです。12 amです。7 amではなく、SizeBasedTriggeringPolicy:Policiesサブノードです。指定されたファイルサイズに基づくスクロールポリシーです。size属性は、各ログファイルのサイズを定義するために使用されます。DefaultRolloverStrategy:同じフォルダの下に最大いくつかのログファイルがある場合、一番古いものを削除して、新しいものを作成します。
  • ロギングノード
  • Rootノード: , Logger, Root
  • level:ログ出力レベルは、全部で8つのレベルがあります。低いレベルから高いレベルまで、All<Trace>Debug<Info<Warn<Err>
  • ApplenderRef:Rootのサブノードは、このログがどのアプリに出力されるかを指定します。
  • ロギングノード: , class
  • level:ログ出力レベルは、全部で8つのレベルがあります。低いレベルから高いレベルまで、All<Trace>Debug<Info<Warn<Err>
  • name:このロギングに適用されるクラスまたはクラスの所在を指定するためのパッケージの全パスは、Rootノードから継承されます。
  • ApenderRef:Loggerのサブノードは、このログがどのアプリに出力されるかを指定します。指定されていない場合は、デフォルトでRootから継承されます。指定された場合は、指定されたこのアプリとRootのApppenderから出力されます。ここでは、Loggerのadditivity=「false」を設定してカスタマイズされたApppenderのみ出力します。
  • 3.ログレベル
    全部で8つのレベルがあります。低いレベルから高いレベルまで、All<Trace<Debug>Info<Warn>Error<Fatal<OFF.All:すべてのログを開くために最低レベルのもの。  Trace:追跡です。プログラム推進以下で、トレイ出力を書いてもいいです。だから、トレイは特に多いはずです。でも大丈夫です。最低ログレベルを設定して、彼に出力させないでください。  Debug:詳細情報イベントはデバッグアプリケーションにとって非常に有用であることを指摘する。  Info:メッセージは粗粒レベルの上突出でアプリケーションの実行過程を強調する。  Warn:出力警告及びwarn以下のレベルのログ。  Error:エラー情報ログを出力する。  Fatal:深刻なエラーイベントを出力すると、アプリケーションの終了につながるログ。  OFF:最高レベルの、すべてのログを閉じます。
    プログラムは設定されたレベル以上のログを印刷します。設定されたログのレベルが高いほど、印刷されたログは少なくなります。
    4.ロゴ4 j.xmlテンプレート
    <?xml version="1.0" encoding="UTF-8"?>
     <!--           : OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
     <!--Configuration   status,      log4j2         ,     ,    trace ,    log4j2        -->
     <!--monitorInterval:Log4j                    ,      -->
     <configuration status="WARN" monitorInterval="30">
         <!--      appender-->
         <appenders>
         <!--          -->
             <console name="Console" target="SYSTEM_OUT">
             <!--       -->
                 <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
             </console>
         <!--          ,  log           , append    ,       ,       -->
         <File name="log" fileName="log/test.log" append="false">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
         </File>
         <!--          info        ,      size,  size             --->
             <RollingFile name="RollingFileInfo" fileName="${sys:user.home}/logs/info.log"
                          filePattern="${sys:user.home}/logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
                 <!--      level        (onMatch),       (onMismatch)-->        
                 <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
                 <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
                 <Policies>
                     <TimeBasedTriggeringPolicy/>
                     <SizeBasedTriggeringPolicy size="100 MB"/>
                 </Policies>
             </RollingFile>
             <RollingFile name="RollingFileWarn" fileName="${sys:user.home}/logs/warn.log"
                          filePattern="${sys:user.home}/logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
                 <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
                 <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
                 <Policies>
                     <TimeBasedTriggeringPolicy/>
                     <SizeBasedTriggeringPolicy size="100 MB"/>
                 </Policies>
             <!-- DefaultRolloverStrategy      ,            720 -->
                 <DefaultRolloverStrategy max="20"/>
             </RollingFile>
             <RollingFile name="RollingFileError" fileName="${sys:user.home}/logs/error.log"
                          filePattern="${sys:user.home}/logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
                 <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
                 <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
                 <Policies>
                     <TimeBasedTriggeringPolicy/>
                     <SizeBasedTriggeringPolicy size="100 MB"/>
                 </Policies>
             </RollingFile>
         </appenders>
         <!--    logger,     logger    appender,appender    -->
         <loggers>
             <!--   spring mybatis      DEBUG  -->
             <logger name="org.springframework" level="INFO"></logger>
             <logger name="org.mybatis" level="INFO"></logger>
             <root level="all">
                 <appender-ref ref="Console"/>
                 <appender-ref ref="RollingFileInfo"/>
                 <appender-ref ref="RollingFileWarn"/>
                 <appender-ref ref="RollingFileError"/>
             </root>
         </loggers>
     </configuration>