2017-05-03 36 views
1

私は春のアプリケーションでログユーティリティとしてlog4j2を使用しています。特定のライブラリ/パッケージのログレベルをルートとは異なるものに設定したい。たとえば、org.springframeworkをINFOに、com.googleをWARNにしたいとします。私はlog4j2.propertiesでこれを見つけた:Log4j2のログレベルを設定する

appender.rolling.type = RollingFile 
appender.rolling.name = RollingFile 
logger.rolling.name = com.test.app 
logger.rolling.level = ALL 
logger.rolling.appenderRef.rolling.ref = RollingFile 

rootLogger.level = info 

私が何logger.rolling手段を理解していませんか?私はlog4j2のドキュメントでそれを見つけ出していますが、それが何であるか、何の意味についての説明はありません。ALLの意味です。

特定のパッケージのログレベルを追加する方法と、このローリングレベルのものは何ですか?

+0

を使用すると、[この](https://logging.apache.org/log4j/2.x/manual/appenders.html#RollingFileAppender)を読み取ることがありますか? –

+0

@EdwinDalorzoはい、そこには 'rolling.level'について何もありません – Richard

答えて

3
Level intLevel 
OFF 0 
FATAL 100 
ERROR 200 
WARN 300 
INFO 400 
DEBUG 500 
TRACE 600 
ALL Integer.MAX_VALUE 

https://logging.apache.org/log4j/2.x/manual/customloglevels.html

のlog4jロガーはALLに設定されているので、もしそれがそのしきい値の最大値を使用するので、それはすべてのイベントをログに記録しますが、そのしきい値の下ですべてのイベントをログに記録します。

appender.rolling.type = RollingFile 
appender.rolling.name = RollingFile 

これはRollingFileという名前の新しいローリングファイルアペンダを定義しています。ローリング・ファイル・アペンダーは、たとえば、固定サイズに成長し、次に最も古いエントリーを削除しながら新しいエントリーを追加し続けることができるアペンダーです。彼らはまた、時間ベースなど

logger.rolling.name = com.test.app 
logger.rolling.level = ALL 
logger.rolling.appenderRef.rolling.ref = RollingFile 

これは、前述のRollingFileアペンダにcom.test.appという名前ロガーからイベントを送信するためにlog4jを言っていることができます。このロガーのレベルがALLに設定されているため、log4jはイベントをフィルターに掛けません。 "logger.rolling"のように "rolling"はロガーの識別子に過ぎません。これは、プロパティファイルが構造化されていないため必要です。したがって、どの行を一緒にするかを区別する方法が必要です。 XMLコンフィギュレーションを使用すると、プロパティで定義されていない他のロガーによって作成されたすべてのイベントを濾過し、唯一INFOまたは以下ログに記録されますされている必要

rootLogger.level = info 

を排除します。

ドキュメントはここにある:https://logging.apache.org/log4j/2.x/manual/configuration.html#Properties

あなたの質問に答えるために、それはロガーは、アプリケーション内で作成されている方法によって異なります。ロガーは実際にはJava内で作成され、その名前が割り当てられます。プロパティー・ファイルは、log4jに各ロガーの処理方法のみを指示します。クラスで定義されている名前を使用して、プロパティー・ファイルにロガーを追加する必要があります。クラス自体がロガーの作成に使用されていて、Apacheが推奨するように、名前は常にクラスの完全修飾名になります。たとえば:

logger.secondclass.name = com.test.AnotherClass 
logger.secondclass.level = DEBUG 
logger.secondclass.appenderRef.rolling.ref = RollingFile 

今どんなDEBUGまたはcom.test.AnotherClassによって作成されたイベントの下にもRollingFileアペンダに送信されます。

このすべてがここで説明されています​​

関連する問題