ログフレーム
3611 ワード
説明もともと .は は、元のログフレームワークと一致することを決定する、すなわち、 を用いる. である.プロファイルで指定する の理解を助けるためにコードで表示できます.
補足 で呼び出すことができるログフレームワークは、
プロファイル
識別
意味
%p
出力優先度、すなわちDEBUG,INFO,WARN,ERROR,FATAL
%r
アプリケーションの起動からログメッセージの出力までの出力にかかるミリ秒数
%t
ログイベントを生成するスレッド名を出力
%f
ログメッセージが属するカテゴリのクラス別名を出力
%c
ログメッセージが属するクラスのフルネームを出力
%d
ログポイントの日付または時刻を出力し、フォーマットを指定します:%d{yyyy-MM-dd HH:mm:ss}
%l
ログ・イベントの発生場所、すなわちログ・メッセージを出力する文は、そのカテゴリの数行目にあります.
%m
log(message)のmessageなど、コードで指定されたメッセージを出力します.
%n
改行記号を出力
基本的な構成は次のとおりです.
spark
関連プロジェクトを開発する際、ログフレームワークの選択にいくつかの穴を踏んで、以下のように記録しました.logback
を使用する予定だったが、slf4j
は異常を示す.maven
にexclusions
を設置することを試み、従来のlog4j
フレームを排除したが、hadoop
関連アーキテクチャの多くはlog4j
フレームを使用し、排除に手間がかかり、exclusions
を大量に設置することでpom
ファイルの可読性を低下させた.log4j
フレームワークlog4j.rootCategory=WARN, console
は旧式の書き方で、効果はlog4j.rootLogger
に等しく、後者を使用すればAppender
は、同じ名前のクラスに対応し、補足
slf4j
はドアモードの典型的な応用である.詳細は以下を参照してください.https://www.cnblogs.com/xrq730/p/8619156.html slf4j
、logback
、log4j
、log4j2
である.環境依存に複数の呼び出すことができるログフレームワークが存在する場合、slf4j
は異常を宣言する.# `Found binding`,
# `StaticLoggerBinder.class`, `slf4j` ,
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
プロファイル
log4j.properties
出力ログフォーマットの一般的なパラメータは次のとおりです.識別
意味
%p
出力優先度、すなわちDEBUG,INFO,WARN,ERROR,FATAL
%r
アプリケーションの起動からログメッセージの出力までの出力にかかるミリ秒数
%t
ログイベントを生成するスレッド名を出力
%f
ログメッセージが属するカテゴリのクラス別名を出力
%c
ログメッセージが属するクラスのフルネームを出力
%d
ログポイントの日付または時刻を出力し、フォーマットを指定します:%d{yyyy-MM-dd HH:mm:ss}
%l
ログ・イベントの発生場所、すなわちログ・メッセージを出力する文は、そのカテゴリの数行目にあります.
%m
log(message)のmessageなど、コードで指定されたメッセージを出力します.
%n
改行記号を出力
基本的な構成は次のとおりです.
### ###
### ,
pattern4file = [%-5p] %d{yyyy-MM-dd HH:mm:ss.SSS} %c[%t]: %m%n
### ,
pattern4cons = [%-5p] %d{HH:mm:ss} %l: %m%n
# , , appender
# : ALL DEBUG INFO WARN ERROR FATAL
log4j.rootLogger = DEBUG, console, D, E
### ###
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold = INFO
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=${pattern4cons}
### DEBUG ###
# DailyRollingFileAppender, ,
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
#
log4j.appender.D.File = ./logs/debugDemo.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = ${pattern4file}
### ERROR ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = C://myDemo/logs/errorDemo.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = ${pattern4file}