ログレベルごとに異なるパターンレイアウトを使用して、SYSTEM_OUTに出力することは可能ですか?

KNVB

log4j2の場合、ログレベルごとに異なるパターンレイアウトを使用してSYSTEM_OUTに出力することは可能ですか?

これが私のlog4j2.xmlです:

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration>
        <Appenders>
            <Console name="debugMsg" target="SYSTEM_OUT">
                <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %l - %msg%n"/>
            </Console>
            <Console name="infoMsg" target="SYSTEM_OUT">
                <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %msg%n"/>
            </Console>
        </Appenders>
        <Loggers>
            <Root level="trace"  additivity="false">
                <AppenderRef ref="infoMsg" level="info"/>
                <AppenderRef ref="debugMsg" level="debug"/>
            </Root>
        </Loggers>
    </Configuration>

ただし、INFOレベルのメッセージは「infoMsg」と「debugMsg」の両方のパターンで表示されます。

2015-12-24 10:51:56.176 Log4j is ready.
[INFO ] 2015-12-24 10:51:56.176 com.myftpserver.MyFtpServer.<init>(MyFtpServer.java:65) - Log4j is ready.
2015-12-24 10:51:56.176 Configuration file is loaded
[INFO ] 2015-12-24 10:51:56.176 com.myftpserver.Configuration.load(Configuration.java:74) - Configuration file is loaded
[DEBUG] 2015-12-24 10:51:56.176 com.myftpserver.Configuration.load(Configuration.java:82) - supportPassiveMode=true
2015-12-24 10:51:56.301 User Manager class is loaded.
[INFO ] 2015-12-24 10:51:56.301 com.myftpserver.Configuration.load(Configuration.java:119) - User Manager class is loaded.
2015-12-24 10:51:56.301 File Manager class is loaded.
[INFO ] 2015-12-24 10:51:56.301 com.myftpserver.Configuration.load(Configuration.java:121) - File Manager class is loaded.
2015-12-24 10:51:56.301 Server Initialization completed.
[INFO ] 2015-12-24 10:51:56.301 com.myftpserver.MyFtpServer.<init>(MyFtpServer.java:69) - Server Initialization completed.
2015-12-24 10:51:56.301 Available passive port:[1232, 1233, 1234]
[INFO ] 2015-12-24 10:51:56.301 com.myftpserver.MyFtpServer.<init>(MyFtpServer.java:75) - Available passive port:[1232, 1233, 1234]

それで、重複したアイテムを削除することは可能ですか?

どうもありがとうございましたそしてメリークリスマス

rgoers

Log4j2の最新バージョンでは、単一のパターンではなく、パターンセレクターを使用できます。Log4jは、マーカーに基づくセレクターを提供しますが、レベルに基づくセレクターは提供しません。Jiraの問題を作成し、追加します。ただし、Log4jでは、スクリプトを使用してパターンを選択できます。レベルに基づいて選択するものを書くのは簡単でしょう。

上記の構成では、デバッグアペンダーも情報レベルのイベントを出力するため、重複が表示されます。

私はそれをテストしていませんが、以下の構成はあなたが望むことをするはずだと思います:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout>
                <ScriptPatternSelector defaultPattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %l - %msg%n">
                    <Script name="LevelSelector" language="bsh"><![CDATA[
                        if (logEvent.getLevel() == org.apache.logging.log4j.Level.INFO) {
                            return "INFO";
                        } 
                        return null;
                        ]]>
                    </Script>
                    <PatternMatch key="INFO" pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %msg%n"/>
                </ScriptPatternSelector>
            </PatternLayout>
        </Console> 
    </Appenders>
    <Loggers>
        <Root level="trace">
            <AppenderRef ref="Console"/>
        </Root>
    </Loggers>
</Configuration>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

変数置換のためにベロシティテンプレートで異なるパターンを使用することは可能ですか?

分類Dev

ブートストラップbtn-group-justifiedレイアウトを使用しているときに、異なる幅のボタンを使用することは可能ですか?

分類Dev

データを2つの異なるデータベーステーブルにスクレイピングすることは可能ですか?

分類Dev

要素ごとのレイヤーを追加した後、事前にトレーニングされたモデルを使用することは可能ですか?

分類Dev

LLVM IRを別のトリプレットとデータレイアウトに再コンパイルすることは可能ですか?

分類Dev

MATEパネルを使用してアプレットまたはインジケーターにEvolutionカレンダーイベントを表示することは可能ですか?

分類Dev

ユーザーアカウントごとに異なるディスプレイドライバーをインストールすることは可能ですか?

分類Dev

デコレータを使用してグローバル変数にモンキーパッチを適用することは可能ですか?

分類Dev

サイズ変更可能なヘッダー、フッター、サイドバーを使用して、このCSSグリッドベースのホーリーグレイルレイアウトを作成するにはどうすればよいですか?

分類Dev

スプライトごとに異なる位置で終了するトゥイーンを使用して、three.jsのスプライトグループをループすることは可能ですか?

分類Dev

プログラムパスは、大文字と小文字が異なる文字をディスク上のファイルとして使用します。これにより、ブレークポイントがヒットしない可能性があります

分類Dev

異なるトップレベルウィンドウでTkinterスクロールバーを互いに独立して移動させることは可能ですか?

分類Dev

トップレベルアカウントでAWSシングルサインオンを使用して、異なるアカウントから複数のAWS Connectインスタンスを設定するにはどうすればよいですか?

分類Dev

FLTKタイムアウトの代わりに標準のC ++スレッドを使用してウィンドウを更新することは可能ですか?

分類Dev

フルカレンダーをオーバーフローイベントにしないようにすることは可能ですか?

分類Dev

スタックビューを使用してラベルとボタンを自動レイアウトするにはどうすればよいですか?

分類Dev

セレクターごとに異なる値を設定することは可能ですか?

分類Dev

ダウンロードクライアントに組み込まれたチェックサム検証を使用しても、破損したトレントファイルをダウンロードすることは可能ですか?

分類Dev

データをストリーミング(アップロード)してGoogleクラウドストレージのバケットに保存し、同時にダウンロードできるようにすることは可能ですか?

分類Dev

非型テンプレートパラメータとして異なる列挙型を使用することは可能ですか?

分類Dev

ダウンタイムなしでpostgres9.6を10にアップグレードすることは可能ですか?従うことができるアプローチは何ですか?

分類Dev

PrimeNG FullCalendarコンポーネントにドラッグされたイベントタイプごとに異なる色を使用しようとすると、この奇妙な動作が発生するのはなぜですか?

分類Dev

ウィンドウごとに異なるキーボードレイアウト言語を設定するにはどうすればよいですか?

分類Dev

プログレッシブウェブアプリをiframe内にインストールすることは可能ですか?

分類Dev

Googleサイトごとに異なるアカウントを設定することはできますか?

分類Dev

同様のロジックを使用して2つの異なるポインタータイプをインクリメントするときに、異なるアドレスを取得するのはなぜですか?

分類Dev

同じ角度ルートを使用して、2つの異なるルーターアウトレットで2つの異なるコンポーネントをレンダリングするにはどうすればよいですか?

分類Dev

可能ですか:複数のスレッドを使用して出力を異なるファイルにストリーミングします /

分類Dev

Kerasカスタムsoftmaxレイヤー:入力レイヤーのデータとしてのゼロに基づいて、softmaxレイヤーの出力で出力ニューロンを0に設定することは可能ですか?

Related 関連記事

  1. 1

    変数置換のためにベロシティテンプレートで異なるパターンを使用することは可能ですか?

  2. 2

    ブートストラップbtn-group-justifiedレイアウトを使用しているときに、異なる幅のボタンを使用することは可能ですか?

  3. 3

    データを2つの異なるデータベーステーブルにスクレイピングすることは可能ですか?

  4. 4

    要素ごとのレイヤーを追加した後、事前にトレーニングされたモデルを使用することは可能ですか?

  5. 5

    LLVM IRを別のトリプレットとデータレイアウトに再コンパイルすることは可能ですか?

  6. 6

    MATEパネルを使用してアプレットまたはインジケーターにEvolutionカレンダーイベントを表示することは可能ですか?

  7. 7

    ユーザーアカウントごとに異なるディスプレイドライバーをインストールすることは可能ですか?

  8. 8

    デコレータを使用してグローバル変数にモンキーパッチを適用することは可能ですか?

  9. 9

    サイズ変更可能なヘッダー、フッター、サイドバーを使用して、このCSSグリッドベースのホーリーグレイルレイアウトを作成するにはどうすればよいですか?

  10. 10

    スプライトごとに異なる位置で終了するトゥイーンを使用して、three.jsのスプライトグループをループすることは可能ですか?

  11. 11

    プログラムパスは、大文字と小文字が異なる文字をディスク上のファイルとして使用します。これにより、ブレークポイントがヒットしない可能性があります

  12. 12

    異なるトップレベルウィンドウでTkinterスクロールバーを互いに独立して移動させることは可能ですか?

  13. 13

    トップレベルアカウントでAWSシングルサインオンを使用して、異なるアカウントから複数のAWS Connectインスタンスを設定するにはどうすればよいですか?

  14. 14

    FLTKタイムアウトの代わりに標準のC ++スレッドを使用してウィンドウを更新することは可能ですか?

  15. 15

    フルカレンダーをオーバーフローイベントにしないようにすることは可能ですか?

  16. 16

    スタックビューを使用してラベルとボタンを自動レイアウトするにはどうすればよいですか?

  17. 17

    セレクターごとに異なる値を設定することは可能ですか?

  18. 18

    ダウンロードクライアントに組み込まれたチェックサム検証を使用しても、破損したトレントファイルをダウンロードすることは可能ですか?

  19. 19

    データをストリーミング(アップロード)してGoogleクラウドストレージのバケットに保存し、同時にダウンロードできるようにすることは可能ですか?

  20. 20

    非型テンプレートパラメータとして異なる列挙型を使用することは可能ですか?

  21. 21

    ダウンタイムなしでpostgres9.6を10にアップグレードすることは可能ですか?従うことができるアプローチは何ですか?

  22. 22

    PrimeNG FullCalendarコンポーネントにドラッグされたイベントタイプごとに異なる色を使用しようとすると、この奇妙な動作が発生するのはなぜですか?

  23. 23

    ウィンドウごとに異なるキーボードレイアウト言語を設定するにはどうすればよいですか?

  24. 24

    プログレッシブウェブアプリをiframe内にインストールすることは可能ですか?

  25. 25

    Googleサイトごとに異なるアカウントを設定することはできますか?

  26. 26

    同様のロジックを使用して2つの異なるポインタータイプをインクリメントするときに、異なるアドレスを取得するのはなぜですか?

  27. 27

    同じ角度ルートを使用して、2つの異なるルーターアウトレットで2つの異なるコンポーネントをレンダリングするにはどうすればよいですか?

  28. 28

    可能ですか:複数のスレッドを使用して出力を異なるファイルにストリーミングします /

  29. 29

    Kerasカスタムsoftmaxレイヤー:入力レイヤーのデータとしてのゼロに基づいて、softmaxレイヤーの出力で出力ニューロンを0に設定することは可能ですか?

ホットタグ

アーカイブ