Log 4 jとcommon-loging


ネット上でLog 4 jとcomon-logingの紹介を探して記録しています。
一.Log 4 j
1.概要
Log 4 jはApacheのオープンソースコード項目です。
Log 4 jを使って、私達はとても便利にログを記録することができます。
から
http://www.apache.org/dist/logging/log4j/1.2.14/最新の安定バージョンをダウンロードします。
2.使い方
log 4 j-1.2.14.jarをlibディレクトリに落として、log 4 jを使う前にプロファイルを定義する必要があります。使わなくてもいいです。コードの中にlog 4 j環境を設定します。しかし、プロファイルを使ってアプリケーションをより柔軟にします。
logl 4 jプロファイルには三つの主要なコンポーネントがあります。ロギング、アプリとLayout、それぞれログタイプ、ログ出力先、ログ出力フォーマットです。
proxoolと似ています。log 4 jは2種類のプロファイル、xmlとpropertiesをサポートします。
log 4 j.propertiesプロファイルは以下の通りです。
log 4 j.root Loggar=[level],apenderName,apenderName,…    (levelはエラーレベルであり、apenderNameは出力先であり、複数の定義が可能である)
level優先度は、それぞれFATAL、ERROR、WARN、INFO、DEBUGの5つのレベルです。定義されたレベルによって、プログラム内のログ出力を制御できます。例えば、ここでERRORレベルを定義しています。プログラムにはFARAL、ERRORレベルのLOGのみが出力されます。
log 4 j.appnder.appnderName=出力先(ここのappnderNameは前で定義されています。任意に名前をつけてもいいです。)
Log 4 jが提供する出力先は、以下のような種類がある。
org.apache.log 4 j.sonine solieApppender(コンソール)
org.apache.log 4 j.FileApppender(ファイル)
org.apache.logl 4 j.DailyRollingFileApender(毎日1つのログファイルを生成する)
org.apphe.logl 4 j.RollingFileApppender(ファイルが指定された時間までに新しいファイルを作成します)
org.apache.log 4 j.WriterApender(ログ情報をストリーミング形式でどこにでも送信する)
log 4 j.apender.mylog.File=dir
log 4 j.apender.mylogs.MaxFileSize=fileSize
log 4 j.appnder.mylog.MaxBackup Index=num設定保存バックアップファイル数
log 4 j.apender.apender Name.layout=レイアウトタイプを設定する(レイアウトタイプを設定する)
Log4j   layout   4 :
org.apache.log4j.HTMLLayout( HTML      )
org.apache.log4j.SimpleLayout(               )
org.apache.log4j.TTCCLayout(         、  、      )
org.apache.log4j.PatternLayout(           )
Pattern Layoutレイアウトを使うと指定される印刷情報の具体的なフォーマットCoversionPatternがあります。印刷パラメータは以下の通りです。
%m           
%p      , DEBUG,INFO,WARN,ERROR,FATAL
%r            log        
%c        ,          
%t              
%n          ,Windows "rn",Unix "n"
%d       ,  :%d{yyyy MMM dd HH:mm:ss,SSS},  :2007 5 17  19:30:00,000
%l            ,     、     ,         
[QC] log     ,       ,       
最も簡単で共通のプロファイル(コンソールから印刷):
log4j.rootLogger=info,mylog
log4j.appender.mylog=org.apache.log4j.ConsoleAppender
log4j.appender.mylog.layout=org.apache.log4j.PatternLayout
log4j.appender.mylog.layout.ConversionPattern=[-] %p %d{yyyy-MM-dd HH:mm:ss} %m %n
  
log4j.rootLogger=info,mylog
log4j.appender.mylog=org.apache.log4j.ConsoleAppender
log4j.appender.mylog.layout=org.apache.log4j.SimpleLayout
コード内のロゴ4 jの使用:
まずログクラスをインポートする必要があります。
import org.arache.log4j.Logger;
static Logger logger = Logger.getLogger(your-className.class);
#           
logger.debug(your-message);
logger.info(your-message);
logger.warn(your-message);
logger.error(your-message);
logger.fatal(your-message);
プログラムを書く時には、デバッグのために大量のlogger情報が入ります。もちろんプログラムのデバッグが完了しても、これらの出力情報が必要でない場合は、出力のレベルを上げるだけで、errorレベルに変更すると、error以下のレベルのloggerは出力されません。とても簡単で便利です。
二.commons-loging紹介
log 4 jとcommons-logingの二つのカバンは全部日記をつけています。なぜ二つを一緒に使いますか?
commons-loggingは「すべてのJavaログ実現」のために統一インターフェースを提供しています。それ自体のログ機能は普通に弱いです。logs 4 j機能は非常に強力で全面的です。
commons-loging作業原理:
1.まずはclassipathの下で自分の配置ファイルcommons-loging.propertiesを探して、見つけたら、その中で定義されているLog実現類を使ってください。
2.comons-loging.propertiesファイルが見つからない場合、システム環境変数org.apphe.com mmons.loging.Logが定義されているかどうかを検索します。見つけたら、その定義のLog実装クラスを使用します。
3.classipathの中にLog 4 jのカバンがあるかどうかを確認し、発見すれば自動的にログ4 jをログ実現類として使用する。
4.JDK自身のログを使ってクラスを実現する(JDK 1.4以降はログ実現類がある)
5.commons-logingを使って自分が提供する簡単なログを実現するクラスSimpleLog
(以上の順序は完全に正確ではないので、公式文書を参照してください)
commons-loggingはいつも一つのログを見つけることができます。そして、できるだけ「最適」なログを見つけます。
1、設定ファイルを必要としなくてもいいです。
2、自動的にLog 4 jカバンがあるかどうかを判断し、あると自動的に使う。
3、最も悲観的な状況でも必ず一つのログを提供することを保証する(SimpleLog)
また、ロゴ4 jの使い方には問題があると思います。
static Loggar logger=ロギング.get Logger(message)
各ログを書く必要があるjavaクラスは、static loggerの例を作成しなければなりません。javaクラスが多いと、これらのstaticオブジェクトを作成するオーバーヘッドが非常に大きいので、最後に自分でlogクラスを書きます。静的な方法でloggerのインスタンスを得ることができます。
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class Logs {
    private static Log log;
    static{
        log=LogFactory.getLog(Logs.class);
    }
    public static Log getLogger(){
        return log;
    }
}
三.Log 4 jに関する全面的な配置
LOG 4 Jの構成を簡単にすることで、より多くのアプリケーションに遍及させました。Log 4 Jプロファイルはコンソール、ファイル、ロールバックファイル、ログメールの送信、データベースログテーブルへの出力、カスタムラベルなどのフルセットの機能を実現しました。一つ二つ選んで使えば十分です。
log 4 j.rootLogger=DEBUG、CONSOSE、A 1、im
ロゴ4 j.addivity.org.apache=true 
権力台に応用する。
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.Threshold=DEBUG 
log4j.appender.CONSOLE.Target=System.out 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n 
文書に応用する

log4j.appender.FILE=org.apache.log4j.FileAppender 
log4j.appender.FILE.File=file.log 
log4j.appender.FILE.Append=false 
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
# Use this layout for LogFactor 5 analysis 
菗を文書のロールバックに応用する。
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender 
log4j.appender.ROLLING_FILE.Threshold=ERROR 
log4j.appender.ROLLING_FILE.File=rolling.log 
log4j.appender.ROLLING_FILE.Append=true 
log4j.appender.ROLLING_FILE.MaxFileSize=10KB 
log4j.appender.ROLLING_FILE.MaxBackupIndex=1 
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout 
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
ヽoo!ツ
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender 
log4j.appender.SOCKET.RemoteHost=localhost 
log4j.appender.SOCKET.Port=5001 
log4j.appender.SOCKET.LocationInfo=true 
# Set up for Log Facter 5 
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout 
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n 


# Log Factor 5 Appender 
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender 
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000 
皰メールにログを送信します。
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender 
log4j.appender.MAIL.Threshold=FATAL 
log4j.appender.MAIL.BufferSize=10 
[email protected] 
log4j.appender.MAIL.SMTPHost=www.wusetu.com 
log4j.appender.MAIL.Subject=Log4J Message 
[email protected] 
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout 
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
〓はデータベースに用いられます
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender 
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test 
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver 
log4j.appender.DATABASE.user=root 
log4j.appender.DATABASE.password= 
log4j.appender.db.sql=INSERT INTO SS_LOG4J_LOG (PRIORITY,LOGDATE,CLASS,METHOD,MSG) VALUES('%p','%d{yyyy-MM-dd HH:mm:ss}','%C','%M','%m')
log4j.appender.db.layout=org.apache.log4j.PatternLayout log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout 
log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 



log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.A1.File=SampleMessages.log4j 
log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j' 
log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout 
カスタムApppender
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender 

log4j.appender.im.host = mail.cybercorlin.net 
log4j.appender.im.username = username 
log4j.appender.im.password = password 
log4j.appender.im.recipient = [email protected] 

log4j.appender.im.layout=org.apache.log4j.PatternLayout 
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n