Log4j2で特定のロガーレベルを設定する方法

glez

log4j1を使用して、個々のロガーレベルを制御できましたが、プロパティステートメントがlog4j2で機能していないようです。rootLoggerレベルをDEBUGに設定していて、commons-loggingを介してAuthorize.netから送信される多数のデバッグログを抑制したいと考えています。httpヘッダーとワイヤーログからレベルをWARNに設定しようとしています。

これは、ロガーの構成について詳しく説明しているlog4jドキュメントです(「Log4Jの構成」を参照)。

これはサンプルログ出力です:

2019-01-01 17:00:01 EST DEBUG org.apache.http.headers http-outgoing-0 << Content-Type: application/xml; charset=utf-8
2019-01-01 17:00:01 EST DEBUG org.apache.http.headers http-outgoing-0 << X-OPNET-Transaction-Trace: a2_5ed1139b-1533-463c-811d-a5ed796d44e7-11076-21806894
2019-01-01 17:00:01 EST DEBUG org.apache.http.headers http-outgoing-0 << Access-Control-Allow-Credentials: true
2019-01-01 17:00:01 EST DEBUG org.apache.http.headers http-outgoing-0 << Access-Control-Allow-Headers: x-requested-with,cache-control,content-type,origin,method,SOAPAction

2019-01-01 17:05:31 EST DEBUG org.apache.http.wire http-outgoing-0 >> "    <transactionRequest>[\n]"
2019-01-01 17:05:31 EST DEBUG org.apache.http.wire http-outgoing-0 >> "        <transactionType>authCaptureTransaction</transactionType>[\n]"
2019-01-01 17:05:31 EST DEBUG org.apache.http.wire http-outgoing-0 >> "        <amount>500</amount>[\n]"
2019-01-01 17:05:31 EST DEBUG org.apache.http.wire http-outgoing-0 >> "        <payment>[\n]"
2019-01-01 17:05:31 EST DEBUG org.apache.http.wire http-outgoing-0 >> "            <creditCard>[\n]"
2019-01-01 17:05:31 EST DEBUG org.apache.http.wire http-outgoing-0 >> "                <cardNumber>4242424242424242</cardNumber>[\n]"
2019-01-01 17:05:31 EST DEBUG org.apache.http.wire http-outgoing-0 >> "                <expirationDate>0822</expirationDate>[\n]"
2019-01-01 17:05:31 EST DEBUG org.apache.http.wire http-outgoing-0 >> "            </creditCard>[\n]"
2019-01-01 17:05:31 EST DEBUG org.apache.http.wire http-outgoing-0 >> "        </payment>[\n]"
2019-01-01 17:05:31 EST DEBUG org.apache.http.wire http-outgoing-0 >> "    </transactionRequest>[\n]"

これは私の現在のlog4j2.propertiesファイルです:

# Tell the root logger what appenders and level to use
rootLogger.level = DEBUG

rootLogger.appenderRefs = console, file
rootLogger.appenderRef.console.ref = console
rootLogger.appenderRef.file.ref = file

appenders = console, file


##### Authorize.net #####

# Controls detailed wire protocol
log4j.logger.org.apache.http.wire=WARN

# Controls headers (good for debugging)
log4j.logger.org.apache.http.headers=WARN

# Controls http context (what you are sending and geting)
log4j.logger.org.apache.http=WARN

# Controls htmlunit details
log4j.logger.com.gargoylesoftware.htmlunit=WARN


##### Console Appender #####

appender.console.name = console
appender.console.type = Console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-MM-dd HH:mm:ss z} %-5p %c %m%n


##### File Appender #####

appender.file.name = file
appender.file.type = File
appender.file.fileName = mylog.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{yyyy-MM-dd HH:mm:ss z} %-5p %c %m%n
glez

したがって、これは明らかに、.propertiesファイルでロガー構成を使用または指定する際の問題であることが判明しました。新しいlog4j2.xml形式に切り替えて、完全に機能させました。

ヒント:XMLファイルでは、ロガーのルート名を指定できます。設定は、サブクラス化されたすべてのロガーに適用されます。例として

<Logger name="org.apache.http">

私の元の質問のように、そのルートを持つすべてのロガーに適用されます:

<Logger name="org.apache.http.wire">
            - and - 
<Logger name="org.apache.http.headers">

これは、Authorize.netのすべてのデバッグメッセージを抑制する作業log4j2.xmlファイルです。ルートロガーレベルをオーバーライドする良い例:

<?xml version="1.0" encoding="UTF-8"?>

<Configuration>

  <Appenders>
    <Console name="console">
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss z} %-5p %-5level %logger - %msg%n"/>
    </Console>

    <File name="file" fileName="mylogfile.log" append="true">
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss z} %-5p %-5level %logger - %msg%n"/>
    </File >
  </Appenders>


  <Loggers>
    <Root level="DEBUG">
      <AppenderRef ref="console"/>
      <AppenderRef ref="file"/>
    </Root>

    <Logger name="org.apache.http" level="WARN" additivity="false">
      <AppenderRef ref="console"/>
      <AppenderRef ref="file"/>
    </Logger>

    <Logger name="net.authorize.util" level="WARN" additivity="false">
      <AppenderRef ref="console"/>
      <AppenderRef ref="file"/>
    </Logger>

    <Logger name="net.authorize.api" level="WARN" additivity="false">
      <AppenderRef ref="console"/>
      <AppenderRef ref="file"/>
    </Logger>

  </Loggers>

</Configuration>

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

log4j2プロパティのクラスにログレベルを設定する方法

分類Dev

特定のLog4j2ロガーのプロパティを設定する

分類Dev

Log4j2:複数のロガーを定義する方法

分類Dev

Log4j2ログレベルの設定

分類Dev

Log4j2ログレベルの設定

分類Dev

Log4j2ログレベルの設定

分類Dev

Kotlin。log4jロガーをファイルレベルで設定することは可能ですか?

分類Dev

log4j2のグローバルPatternLayoutを定義する方法は?

分類Dev

NetBeansでlog4j2を設定する方法は?

分類Dev

Log4j2のロガーにアペンダーを追加する方法

分類Dev

プログラムでLog4j2のログレベルを変更する

分類Dev

log4j2で1つのレベルのみを記録する方法は?

分類Dev

グローバル設定ファイルでngx-loggerのロガーレベルを設定する方法

分類Dev

log4jログレベルを設定する

分類Dev

個々のクラスのログレベルを設定するLog4j

分類Dev

spring MVC Web プロジェクトで log4j ログ レベルを設定する方法

分類Dev

適切春ブーツとlog4j2を設定する方法?

分類Dev

log4j2のJSONログにフィールドを追加する方法

分類Dev

tomcatでlog4j2フォルダを設定するには?

分類Dev

pysparkでlog4jを使用して特定のロガーのログレベルを構成するにはどうすればよいですか?

分類Dev

Log4j2 では、キーに基づいてロガーから特定のキーと値のペアを除外することはできますか?

分類Dev

Log4j2 - 「ロガー」要素が「ルート」ロガーからコンテンツを隠しているのはなぜですか?

分類Dev

ルート以外に複数のロガーを使用する場合のlog4j2クラス名

分類Dev

コンソールでカスタムロガー印刷を無効にする(Log4j2)

分類Dev

SLF4JおよびLog4j2を使用してFATAL(または任意のカスタムログレベル)を記録する方法

分類Dev

Log4j2:コンソールレベルに影響するログファイルレベル

分類Dev

現在の作業ターゲットディレクトリへのログファイルパスをlog4j2 xml形式で構成する方法

分類Dev

Tomcatサービスを再起動せずに、実行時にlog4j2.xmlのロガーレベルを変更する方法

分類Dev

log4j2でマーカーが設定されていないことをフィルタリングする方法は?

Related 関連記事

  1. 1

    log4j2プロパティのクラスにログレベルを設定する方法

  2. 2

    特定のLog4j2ロガーのプロパティを設定する

  3. 3

    Log4j2:複数のロガーを定義する方法

  4. 4

    Log4j2ログレベルの設定

  5. 5

    Log4j2ログレベルの設定

  6. 6

    Log4j2ログレベルの設定

  7. 7

    Kotlin。log4jロガーをファイルレベルで設定することは可能ですか?

  8. 8

    log4j2のグローバルPatternLayoutを定義する方法は?

  9. 9

    NetBeansでlog4j2を設定する方法は?

  10. 10

    Log4j2のロガーにアペンダーを追加する方法

  11. 11

    プログラムでLog4j2のログレベルを変更する

  12. 12

    log4j2で1つのレベルのみを記録する方法は?

  13. 13

    グローバル設定ファイルでngx-loggerのロガーレベルを設定する方法

  14. 14

    log4jログレベルを設定する

  15. 15

    個々のクラスのログレベルを設定するLog4j

  16. 16

    spring MVC Web プロジェクトで log4j ログ レベルを設定する方法

  17. 17

    適切春ブーツとlog4j2を設定する方法?

  18. 18

    log4j2のJSONログにフィールドを追加する方法

  19. 19

    tomcatでlog4j2フォルダを設定するには?

  20. 20

    pysparkでlog4jを使用して特定のロガーのログレベルを構成するにはどうすればよいですか?

  21. 21

    Log4j2 では、キーに基づいてロガーから特定のキーと値のペアを除外することはできますか?

  22. 22

    Log4j2 - 「ロガー」要素が「ルート」ロガーからコンテンツを隠しているのはなぜですか?

  23. 23

    ルート以外に複数のロガーを使用する場合のlog4j2クラス名

  24. 24

    コンソールでカスタムロガー印刷を無効にする(Log4j2)

  25. 25

    SLF4JおよびLog4j2を使用してFATAL(または任意のカスタムログレベル)を記録する方法

  26. 26

    Log4j2:コンソールレベルに影響するログファイルレベル

  27. 27

    現在の作業ターゲットディレクトリへのログファイルパスをlog4j2 xml形式で構成する方法

  28. 28

    Tomcatサービスを再起動せずに、実行時にlog4j2.xmlのロガーレベルを変更する方法

  29. 29

    log4j2でマーカーが設定されていないことをフィルタリングする方法は?

ホットタグ

アーカイブ