Log4jロギングテクノロジー
記事ディレクトリ
1.コンセプト
プログラムのログテクノロジーは、実行中のプログラムの詳細なプロセスを記録でき、永続的に保存できます。
2.ログステートメントと出力ステートメントの違い
3.ロギングテクノロジーのアーキテクチャ
4.Log4j構成ファイルの詳細な説明
注:Log4j構成ファイルの名前はlog4j.propertiesである必要があります。簡単な例は次のとおりです。
Log4j構成ファイルの3つのコア
(1)ロガーロガー
i。役割:ログのレベルを示すために使用されます
ii。フォーマット:log4j.rootLogger=日志级别,appenderName1,appenderName2...
iii。ログレベル:
オフ、デバッグ<情報<警告<エラー<致命的、すべて、カスタマイズされたレベル
注:Log4jには、指定されたレベル以上のレベルのログ情報のみを出力するルールがあります。
iv。appenderName:Appenders出力ソースで構成します
(2)アペンダーの出力ソース
i。機能:コンソール、ファイルなどのさまざまな場所にログを出力します。
ii。フォーマット:
コンソールへの出力:
log4j.appender.自定义appenderName的名称=org.apache.log4j.ConsoleAppender
ファイルへの出力:
log4j.appender.自定义appenderName的名称=org.apache.log4j.FileAppender
iii。ConsoleAppenderの一般的に使用されるオプション:
- ImmediateFlush = true
すべてのメッセージがすぐに出力されることを示します。出力しないようにfalseに設定すると、デフォルト値はtrueになります。
- Target = System.out
フォントの色は黒、Target = System.errを使用、フォントの色は赤を使用します
iv。FileAppenderの一般的に使用されるオプション:
- ImmediateFlush = true
すべてのメッセージがすぐに出力されることを示します。出力しないようにfalseに設定すると、デフォルト値はtrueになります。
- Append = false
trueは、指定されたファイルにメッセージを追加することを意味します。元のメッセージは
falseをカバーしません。メッセージは指定されたファイルの内容をカバーします。デフォルト値は、trueです。
- File = D:/logs/logging.log4j(パスアドレスは左側のスラッシュです)
指定したファイルにログ情報を出力します。このファイルは存在する必要はなく、自動的に作成されます
(3)レイアウト
i。機能:ログ出力のフォーマットを調整します
ii。フォーマット:
レイアウトモードは柔軟に指定できます。
log4j.appender.自定义appenderName的名称.layout=org.apache.log4j.PatternLayout
ログ情報レベルと情報文字列が含まれます。
log4j.appender.自定义appenderName的名称.layout=org.apache.log4j.SimpleLayout
ログの時間、スレッド、カテゴリなどの情報が含まれています。
log4j.appender.自定义appenderName的名称.layout=org.apache.log4j.TTCCLayout
iii。PatternLayoutの一般的に使用されるオプション
フォーマット:ConversionPattern=指定的格式化符号
5.Log4jの使用手順
(1)jarパッケージをインポートします
(2)log4j.properties構成ファイルを作成し、このファイルをsrcディレクトリーに配置します。
log4j.rootLogger=info,my,fileAppender
### direct log messages to my ###
log4j.appender.my=org.apache.log4j.ConsoleAppender
log4j.appender.my.ImmediateFlush = true
log4j.appender.my.Target=System.out
log4j.appender.my.layout=org.apache.log4j.PatternLayout
log4j.appender.my.layout.ConversionPattern=%d %t %5p %c{1}:%L - %m%n
# fileAppender演示
log4j.appender.fileAppender=org.apache.log4j.FileAppender
log4j.appender.fileAppender.ImmediateFlush = true
log4j.appender.fileAppender.Append=true
log4j.appender.fileAppender.File=E:/log4j-log.log
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n
(3)コード内のログオブジェクトを取得して出力します
public class Log4JTest01 {
//Logger类所属的包是slf4j
//参数是当前类.class
private static final Logger LOGGER = LoggerFactory.getLogger(Log4JTest01.class);
public static void main(String[] args) {
LOGGER.debug("debug级别的日志"); //没有达到配置文件中的info级别,不会输出
LOGGER.info("info级别的日志");
LOGGER.warn("warn级别的日志");
LOGGER.error("error级别的日志");
}
}
(4)運転結果
(5)設定ファイルで指定された出力ファイルを開きます