Log 4 j関連

4719 ワード

Log 4 jはJakartaの次のオープンソースコードのサブプロジェクトで、Log 4 jを通じて、カスタムフォーマットを使用してデバッグ情報とログ情報を1つ以上の必要な場所に出力することができます.Log 4 jの構成Log 4 jは、共通クラスLogger、共通インタフェースAppender、および共通抽象クラスLayoutの3つの重要なコンポーネントを含む.1、共通クラスLoggerログレコーダ(Logger)はログ処理の核心コンポーネントであり、ログ情報の生成を担当する.生成されたログは、構成されたログ・レベルに基づいて出力またはスクリーンショットされます.レベル記述OFF全ログ記録の出力FATAL出力をオフにすると、アプリケーションが終了する重大エラーイベント情報ERROR出力は、システムの運転継続に影響しないエラーイベント情報WARN出力が発生する可能性のあるエラーイベント情報INFO出力アプリケーションシステムの運転経過情報DEBUG出力アプリケーションのデバッグ情報ALLが全ログ記録の出力2、共通インタフェースAppender Appenderはログ記録操作の出力を制御し、ログ情報の出力先(コンソール、ファイル、ロールバックファイル、ログメールの送信、データベースログテーブルへの出力、カスタムラベルなど)を指定する.Appender名称説明ConsoleAppender出力コンソールFileAppender出力指定ファイルRollingFileAppender出力ファイル、ファイルサイズが指定サイズに達すると新しいファイルDailyRollingFileAppender出力ファイル、毎日1つの新しいファイルWriterAppenderが生成し、ログ情報を任意の指定された場所JDBCappenderにストリーム形式で送信し、指定されたデータベースSMTPAppenderに出力し、メール形式でログ情報を送信する3、共通抽象クラスLayout LayoutがAppender出力Log 4 jをフォーマットするlayout形式は、Layout名記述SimpleLayoutがログ情報を含むレベルと情報文字列PatternLayoutが指定した変換モードに従ってログ出力HTML LayoutがHTMLテーブル形式で出力TTCCLayoutがログ生成を含む時間、スレッド、カテゴリ等の情報Log 4 jが提供する出力関数パラメータ名は、%m出力コードで指定されたメッセージ内容%p出力優先度、すなわちDEBUG,INFO,WARN,ERROR,FATAL%rが、アプリケーションがログ情報の出力を開始するまでにかかるミリ秒数%c出力が属するカテゴリから出力され、通常、クラスのフルネーム%t出力ログイベントを生成するスレッド名%nは、クラス名、発生したスレッド、およびコード内の行数Log 4 jの配置ファイルLog 4 jは、XML形式のファイルの2つのプロファイルフォーマットをサポートし、もう1つはJava属性ファイル(キー=値)log 4 jである.propertiesの例
log4j.rootLogger=DEBUG,A1,A2,A3,A4,A5,A6

#       
log4j.appender.A1=org.apache.log4j.ConsoleAppender 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n

#      
log4j.appender.A2=org.apache.log4j.FileAppender 
log4j.appender.A2.File=${catalina.home}/webapps/testLog/logging.log 
log4j.appender.A2.Append=true 
log4j.appender.A2.layout=org.apache.log4j.PatternLayout 
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n


#        
log4j.appender.A3=org.apache.log4j.RollingFileAppender
log4j.appender.A3.File=${catalina.home}/webapps/testLog/logging.log 
log4j.appender.A3.Append=true 
log4j.appender.A3.MaxFileSize=1000KB
log4j.appender.A3.MaxBackupIndex=1
log4j.appender.A3.layout=org.apache.log4j.PatternLayout 
log4j.appender.A3.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n


#        
log4j.appender.A4=org.apache.log4j.net.SMTPAppender
log4j.appender.A4.BufferSize=10
log4j.appender.A4.From=     
log4j.appender.A4.SMTPHost=SMTP   
log4j.appender.A4.Subject=    
log4j.appender.A4.To=     
log4j.appender.A4.layout=org.apache.log4j.PatternLayout 
log4j.appender.A4.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n



#      
log4j.appender.A5=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A5.URL=jdbc:mysql://localhost:3306/test
log4j.appender.A5.driver=com.mysql.jdbc.Driver
log4j.appender.A5.user=root
log4j.appender.A5.password=root
log4j.appender.A5.sql=INSERT INTO LOG4J (Message) VALUES ('%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n')
log4j.appender.A5.layout=org.apache.log4j.PatternLayout 
log4j.appender.A5.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n

#             
log4j.appender.A6=org.apache.log4j.DaliyRollingFileAppender
log4j.appender.A6.File=${catalina.home}/webapps/testLog/logging.log 
log4j.appender.A6.DatePattern=yyyyMMdd-HH'.log' 
log4j.appender.A3.layout=org.apache.log4j.PatternLayout 
log4j.appender.A3.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} [INFO] %m%n

Log 4 jの使用方法一般log 4 jは、以下の3ステップ(1)に従ってプロファイルPropertyConfiguratorにロードする.configure(getServletContext().getRealpath("WEB-INF/log4j.properties")); (2)ログレコーダ//ログレコーダLoggerを取得し,名前は本クラスの名前とする.Logger logger = Logger.getLogger(this.getClass()); (3)ログレコーダを用いてログ情報を生成し,以上の2つの必要なステップの実行が完了すると,異なる優先度のログ文を用いてログを記録したい場所に簡単に挿入することができる.logger.fatal(「TestServiceletから生成されたfatal情報です!」);logger.error(「TestServiceletから生成されたerror情報です!」);logger.warn(「TestServiceletから生成されたwarn情報です!」);logger.Debug(「TestServiceletから生成されたdebug情報です!」);logger.info(「TestServiceletから生成されたinfo情報です!」);
 
 
 
 
WebでxmlではInitLog 4 jInitLog 4 jlog 4 jWEB-INF/log 4 jを使用するように構成する.properties1InitLog 4 j.JAvaにPropertyConfiguratorをロードします.configure(""); 必要な場所でロガー=ロガーを呼び出す.getLogger(this.getClass()); logger.info(「TestServiceletから生成されたinfo情報です!」);