19

Javaアプリケーションへのログインにslf4jを使用しています。これには、多くのログ記録とログ監視が含まれます。
ログ全体がで黒色で印刷されている場合、ログから情報を読み取って見つけることが非常に難しい場合があります。
読みやすくするために、さまざまな種類のメッセージをさまざまな色でログに記録することは可能ですか?
たとえば、すべてのエラーレベルメッセージが赤色または異なるフォントサイズで表示され、すべての情報レベルメッセージが青色および異なるフォントサイズで表示されます。

任意の提案やヘルプを歓迎します。Thnx。

4

5 に答える 5

4

slf4jフォーマッターがないため、ロギングの色を変更することはできません。SLF4Jは、アプリケーションと、Log4jやLogbackなどのログ機能との間のミドルウェアです。

ここで説明するように、Log4j出力の色を変更できます。jcabi-logのMulticolorLayoutを使用することをお勧めします

于 2012-10-05T06:03:06.420 に答える
4

あなたが心に留めておかなければならない何か。

まず、SLF4Jは単なるログファサードです。実際のログメッセージの処理方法は、使用したバインディングによって異なります。したがって、質問は無効です。代わりに、使用する実装を引用する必要があります(LogBack?Log4J?など)

第二に、「着色」はほとんどの場合意味のあるものではありません。たとえば、プレーンテキストのログファイルを参照している場合、それらはすべてプレーンテキストであるため、色付けを制御できるものはありません(エディターにログメッセージ形式の特別な構文強調表示が組み込まれている場合を除く)。コンソール/ターミナルで色を確認したい場合、または色情報(HTMLなど)を含めることができるファイル形式でログを出力している場合は、意味があります。

これらの2つのアイデアを念頭に置いて、ここに私の提案があります。

LogBackには、コンソール出力のhttp://logback.qos.ch/manual/layouts.html#coloringの色付けのサポートが組み込まれています。コンソール出力で色を確認する方法を探していて、LogBackの使用が許可されている場合は、これが探しているものです。

于 2012-10-05T06:14:16.787 に答える
3

2つの解決策が思い浮かびます。それらは色ではありませんが、代替ソリューションです。

  1. ファイルアペンダーの構成では、ログレベル(エラー、警告など)を含めるようにパターンを構成できます。次に、ファイルをgrepして、メッセージをレベルでフィルタリングできます。

  2. レベルのしきい値が異なる2つのファイルアペンダー(2つの別々のログファイル用)を構成できます。たとえば、一方はデバッグレベルより上のすべてのログ(つまり、info、warn、error)をlogs.txtに記録し、もう一方はエラーログのみをerrors.txtに記録します。

それが役に立てば幸い。

于 2012-09-17T23:25:35.847 に答える
1

次のアペンダーをlogback.xmlに追加して、ログ出力に色を付けます。

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <!-- encoders are assigned the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder>
            <Pattern>%d %highlight(%-5level) [%thread] %cyan(%logger{15}): %msg%n</Pattern>
        </encoder>
</appender>
于 2018-12-15T14:45:52.693 に答える
0

ロギングレベルとパッケージの両方にフィルターを使用しています。この例は、Springbootapplication.propertiesからのものです。

   logging.level.root=warn
   logging.level.org.springframework=warn
   logging.level.org.hibernate=warn
   logging.level.org.starmonkey.brown=DEBUG

このようにして、見たいメッセージだけを見ることができます

于 2015-12-16T05:17:41.550 に答える