log 4 j(二)——ログ情報の出力をどのように制御しますか?
8199 ワード
一:テスト環境とlog 4 j(一)--なぜlog 4 jを使用するのか.同様に、ここでは再説明しない
二:栗を見てから結論を出す
三:結論
1)上記のコードのコメントをすべて削除すると、このコードはかなり簡単であることがわかります.コメントは試験時に追加されたもので、私が覚えたい知識点でもあります.log 4 jフレームワークを使用してログ出力を制御する方法です.
2)上のコードは以下の部分で構成されている
2-1)ログ情報出力フォーマットを制御する——pattern
2-2)ログ情報出力パターンを制御する——layout
2-3)ログ情報出力先を制御する――appender
2-4)ログ情報の出力を制御するLOGGERは、異なるレベルのログ出力方法を呼び出し、構成されたログ出力レベルに基づいてどのような方法が呼び出されるかを制御することができ、これは後述する
3)プロファイルによる制御においても,プログラム自体による制御においても,我々が制御したい基本は2)説明したこれらの部分であり,これらの機能はログフレームワークが提供する最も基本的な機能でもある.
二:栗を見てから結論を出す
import org.apache.log4j.*;
import test.log4j.bean.Person;
//by godtrue
public class UseLog4j {
//
private static Logger LOGGER = LogManager.getLogger(UseLog4j.class);
//
private static long CYCLE = 102;
// ——
public static void main(String[]args){
long startTime = System.currentTimeMillis();
/**
* log4j
*/
/**
* : ,Log4J C printf , :
* 1)%t
* 2)%p , DEBUG,INFO,WARN,ERROR,FATAL
* 3)%r layout( )
* 4)%c category( ),
* 5)%F ,
* 6)%d , ISO8601, , :%d{yyy MMM dd HH:mm:ss,SSS}, :20017 02 18 22:10:28,921
* 7)%L , 。 :10
* 8)%l , 、 , 。 :Testlog4.main(TestLog4.java:10)
* 9)%% %
* 10)%M
* 11)%m
* 12)%n ,Windows “rn”,Unix “n”
*
*
* , , , , ?log4j ,
* : 、 、 , :
* ( %c , )
*
* 1) %-20c 20 none , 20
* 2) %20c 20 none , 20
* 3) %.30c none 30 , 30
* 4) %-20.30c 20 30 , 20 。 , 30 , 。
* 5) %20.30c 20 30 , 20 。 , 30 , 。
*
*/
// ,
//String pattern = "[1]%t - [2]%p - [3]%r - [4]%c - [5]%F - [6]%d - [7]%L - [8]%l - [9]%% - [10]%M - [11]%m[12]%n"; // ,
// ,
String pattern = "[1]%-10p - [2]%10p - [3]%.3p - [4]%-10.3p - [5]%10.3p 。 %n"; // ,
/**
* : , ( ):
* 1)org.apache.log4j.HTMLLayout( HTML ),
* 2)org.apache.log4j.PatternLayout( , ),
* 3)org.apache.log4j.SimpleLayout( ),
* 4)org.apache.log4j.TTCCLayout( 、 、 )
*/
Layout layout = new PatternLayout(pattern);
/**
* : , ( ):
* 1)org.apache.log4j.ConsoleAppender( ),
* 2)org.apache.log4j.FileAppender( ),
* 3)org.apache.log4j.DailyRollingFileAppender( ),
* 4)org.apache.log4j.RollingFileAppender( , ),
* 5)org.apache.log4j.WriterAppender( )
*/
Appender appender= new ConsoleAppender(layout);
// , :1: ,2: ,3:
BasicConfigurator.configure(appender);
/**
* , :
* 1)ALL 。
* 2)TRACE 。 。 1.2.12[3]。
* 3)DEBUG 。 。
* 4)INFO ( / )。 , , 。
* 5)WARN API,API , , ( )。 。
* 6)ERROR 。 。
* 7)FATAL 。 。
* 8)OFF , 。
*
* :ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
*/
for(int i=0;i){
if(i<100){
try{
LOGGER.info(new Person("godtrue",100/i,'M'));//
}catch(Exception e){
LOGGER.error(i+" !");//
}finally{
LOGGER.warn(" 0 100 !");//
}
}else{
LOGGER.info(" , "+i+" ! , !");//
}
}
LOGGER.debug(" :"+(System.currentTimeMillis()-startTime));//
}
}
三:結論
1)上記のコードのコメントをすべて削除すると、このコードはかなり簡単であることがわかります.コメントは試験時に追加されたもので、私が覚えたい知識点でもあります.log 4 jフレームワークを使用してログ出力を制御する方法です.
2)上のコードは以下の部分で構成されている
2-1)ログ情報出力フォーマットを制御する——pattern
2-2)ログ情報出力パターンを制御する——layout
2-3)ログ情報出力先を制御する――appender
2-4)ログ情報の出力を制御するLOGGERは、異なるレベルのログ出力方法を呼び出し、構成されたログ出力レベルに基づいてどのような方法が呼び出されるかを制御することができ、これは後述する
3)プロファイルによる制御においても,プログラム自体による制御においても,我々が制御したい基本は2)説明したこれらの部分であり,これらの機能はログフレームワークが提供する最も基本的な機能でもある.