log 4 jにログレベルを追加


まず、なぜlog 4 jにログレベルを追加したいのかを説明し、プロジェクトを開発する際にプロジェクト全体の異常処理を専門に設計し、異常を処理するには以下の方法を使用しています.

try{
...
}catch(Exception e){
logger.error(e.getMessage(),e);
throw new XXXXException(...);
}

このように開発過程において、errorレベルよりもログレベルを低くすれば異常情報を印刷することができるが、問題が発生し、開発が完了した後にお客様にプレゼンテーションを行う場合、お客様に異常情報を見せたくない.プレゼンテーション中に異常が発生した場合、異常情報だけをログに書き込み、後でログをチェックして修正する.このような目的を達成するには、ログ・レベルのみFATALに設定していますが、FATALレベルはプログラムの終了に影響を与えるなど重大なエラーであり、要件に合致しないことは明らかです
log 4 jに関するログレベルは、以下のように記述される.
[list]
[*]DEBUGは、パーティクル情報イベントがアプリケーションのデバッグに非常に役立つことを示しています.
[*]INFOは、メッセージが太さレベルでアプリケーションの実行プロセスを強調していることを示します.
[*]WAENは潜在的なエラーが発生することを示す
[*]ERRORは、エラーイベントが発生してもシステムの継続に影響しないことを示しています.
[*]FATALは、重大なエラー・イベントごとにアプリケーションが終了することを示します.
[/list]
さらに、次の2つのレベルがあります.
[list]
[*]ALL最下位レベル、すべてのログを開く
[*]OFF最上位レベル、すべてのログを閉じる
[/list]
そこでログレベルを追加し、ネット上の実装を調べると、カスタムレベルを使用する場合にインスタンス化する必要があり、上記のように使用できないことを考え、log 4 jソースコードの修正の旅を始めた.
apache-log 4 j-1.2.36をダウンロードします.zip
開くとソースコードが見つかり、主に以下のクラスに変更されます:Level.java,Category.java,Loglog.JAvaこのいくつかのファイル(修正後のソースコードは添付ファイルにあります)、修正が完了したら、再パッケージする必要があります.パッケージ化するときは注意してください.maven 2を使用してパッケージ化し、コンソールの下でコマンド:mvn compileを実行し、build successful情報を見てからmvn jar:jarコマンドを実行するとパッケージ化に成功します.ルートディレクトリに行ってtargetディレクトリを探してjarファイルを見ましょう.これが私たちが修正したjarパッケージです.はい、次はテスト列です.
lo4j.properties
log4j.rootLogger=SERIOUS, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p [%t] %30c %3x - %m%n
JAvaコード:

import org.apache.log4j.Logger;
public class TestMain1 {
private static final Logger logger = Logger.getLogger(TestMain1.class);
public static void main(String[] args) {
logger.debug("111111111");
logger.info("111111111");
logger.warn("111111111");
logger.serious("111111111");
logger.error("111111111");
logger.fatal("111111111");
}
}

プロファイルで設定したログ・レベルは、私がカスタマイズしたレベルです:SERIOUS
コードの実行後に印刷される情報は次のとおりです.
0 SERIOUS [main] TestMain1 - 111111111
0 ERROR [main] TestMain1 - 111111111
0 FATAL [main] TestMain1 - 111111111
プロファイルを修正してからコードテストを実行することができます.私たちの修正は成功しました.