2017-07-25 9 views
0

ちょっと、ファイル出力と同じ出力をコンソールに持つことができるかどうか疑問に思っていました。log4j2 - Console&RollingFileのログを複製する

ここは私のXML設定です。

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="WARN" name="log4j2 Logs"> 
    <Properties> 
     <Property name="basePath">./logs</Property> 
    </Properties> 

    <Appenders>  
    <RollingFile name="file" fileName="${basePath}/ActivateMaintenancePage.logs" 
          filePattern="${basePath}/ActivateMaintenancePage-%d{yyyy-MM-dd}"> 
     <PatternLayout header="LOGGING START%n%n" footer="%n%nLOGGING END" 
        pattern="%3sn %30d{DEFAULT} [%M] %-7level %c{30} - %m%n" /> 

     <Policies>  
     <OnStartupTriggeringPolicy minSize="0"/> 
     <TimeBasedTriggeringPolicy /> 
     <SizeBasedTriggeringPolicy size="500 MB"/> 
     </Policies> 
    </RollingFile> 


    <Console name="console" target="SYSTEM_OUT"> 
     <PatternLayout header="LOGGING START%n%n" footer="%n%nLOGGING END" 
        pattern="%3sn %30d{DEFAULT} [%M] %-7level %c{30} - %m%n" /> 
    </Console>  
    </Appenders>  


    <Loggers>    
    <Root level="trace">   
     <AppenderRef ref="console" level="error"/> 
     <AppenderRef ref="file" level="trace"/>   
    </Root> 
    </Loggers> 
</Configuration> 

RollingFile

1  2017-07-25 11:16:36,762 [initializeChrome] INFO class testNG.SimSettings - Web Chrome driver is now initilized. 
    2  2017-07-25 11:16:36,762 [lambda$0] INFO class testNG.SimSettings - Opening... http://msrvaq11vm.technomedia.ca/sigal_60/2017sp1/sp_polymont/_sim/PROD Sp2 2016 Sim... 
    3  2017-07-25 11:16:47,926 [initilizeAllElements] INFO class testNG.SimSettings - All @FindBy elements have been initilized. 
    4  2017-07-25 11:16:48,006 [change1stLevelFrame] INFO class testNG.SimSettings - Changing target to 1st level frame. 
    5  2017-07-25 11:16:49,719 [enterCredentials] INFO class testNG.SimSettings - UserName & Password: Success! 

での出力とコンソールの空。しかし、今、私は「トレース」

それはコンソールに.... 2,4,6なり、私のファイルには1,3,5,7となりますに

<AppenderRef ref="console" level="error"/> 

を変更した場合..それは容易に理解できる。

私の質問は、どのようにコンソールとファイルに同じログレベル(トレース)出力を持つことができますか? (パッケージ名とレベルのタグを追加するとうまくいきませんでした)この質問に関連

log4j2 xml configuration - Log to file and console (with different levels)

答えて

0

私は私が正しくあなたの質問を読んでかはわからないが、あなたには、いくつかのユニークなをレンダリングしたいようです同じログイベントがコンソールログとファイルログ出力で同じ一意の値を持つように、ログ出力の値を変更する必要があります。

シーケンス番号パターンコンバータは、ログイベントがレンダリングされるたびに増加します。同じログイベントが各アペンダーに対して個別にレンダリングされるため、異なるアペンダーは決して同じシーケンス番号を持ちません。

いくつかの選択肢があります。 1つのアイデアは、%nanonanotimeをパターンレイアウトに含めることです。この値は、アプリケーションがログ呼び出しを行い、すべてのアペンダーで同じになるときに取得されます。カスタムのLog4j2パターンコンバータまたはルックアップを作成する方法もあります。

関連する問題