log 4 j基礎教程
9406 ワード
参照引用は---->http://javacrazyer.iteye.com/blog/1135493から
ロゴ4 jによる運転方式
ログ4 jシステムの三大プレート:ログライタ、ログ出力端末、ログレイアウトモード
ロギング類はログパッケージの核心であり、ロギングの名称は大きさ表記に敏感であり、名称の間に継承関係がある.子の名前は父の名前からプレフィックスをして、点号「.」で区切ります.x.yはx.y.zの父ロガーです.ロガーシステムには、すべてのロガーの祖先がいます.常に存在し、名前では取得できません.ロガー・ゲットロギング()で取得できます.ロガーオブジェクトの取得方法は多く、APIドキュメントを参照することができますが、あるオブジェクトの中で、そのオブジェクトが属するクラスをパラメータとしてロギング.get Logger(Class clazz)を呼び出して、loggerオブジェクトを取得することが、現在知られている最も理性的なネーミングlogger方法とされています.
②ログ4 jのログレベル(レベル) 各loggerにはログレベルがあります.ログの出力を制御します.割り当てられていないレベルのロゴは、一番近い親のログレベルを自動的に継承します.ロギングの高さは以下の通りです. ALL<DEBUG<INFO<WARN<ERROR>FATAL<OFF
③Log 4 jの出力端末(Apenderインターフェース)
④Log 4 jの出力レイアウトパターン(Layoutインターフェース) Log 4 j提供Layoutには以下の種類があります.
実際の使用では、Log 4 jは、一般にプロファイル構成によって使用される.プロファイルは二つの種類があります.Java propertiesとXMLファイルです.一般的にはpropertiesファイルを使用して配置します.簡潔で読みやすいからです.以下はJava propertiesの構成のみを紹介します. ロギング4 jに対する配置はロギングとロギングの配置である.主な構成項目は、ロトロギング、出力端末、出力レイアウトモードであり、すべての構成項目はlog 4 jで始まる必要がある. プロファイルの例
log 4 j.root Loggar=[level],apenderName,apenderName,…解釈:
このうち、levelはログ記録の優先度であり、OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALLまたはカスタムレベルに分類される.Log 4 jは、4つのレベルだけを使用することを推奨しており、優先度が高いものから低いものまでそれぞれERROR、WARN、INFO、DEBUGである.ここで定義されたレベルによって、アプリケーションの各レベルのログ情報のスイッチを制御することができます.例えば、ここでINFOレベルを定義していますが、このレベル以上のものだけが処理されています.このアプリケーションのDEBUGレベルのログ情報はプリントされません.ALL:すべてのログを印刷し、OFF:すべてのログ出力をオフにします.apenderNameとは、ログ情報をどこに出力するかを指定します.複数の出力先を同時に指定できます.
ロゴ4 j.addivity.org.apache=true 説明: 子ロギングは父ロギングの出力元(appender)のロゴビットを継承しているかどうかです.具体的には、デフォルトではロギングは父ロガーのappenderを継承しています.つまりロギングは父ロガーのappenderから出力されます.additivityがfalseに設定されていると、子Loggarは自分のapenderにだけ出力します.父Loggerのapenderには出力しません.
ロゴ4 jによる運転方式
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class TestLog4j {
static Logger logger = Logger.getLogger(TestLog4j.class);
public static void main(String args[]) {
PropertyConfigurator.configure("log4j.properties");
logger.debug("Here is some DEBUG");
logger.info("Here is some INFO");
logger.warn("Here is some WARN");
logger.error("Here is some ERROR");
logger.fatal("Here is some FATAL");
}
}
① Log 4 jのアーキテクチャログ4 jシステムの三大プレート:ログライタ、ログ出力端末、ログレイアウトモード
ロギング類はログパッケージの核心であり、ロギングの名称は大きさ表記に敏感であり、名称の間に継承関係がある.子の名前は父の名前からプレフィックスをして、点号「.」で区切ります.x.yはx.y.zの父ロガーです.ロガーシステムには、すべてのロガーの祖先がいます.常に存在し、名前では取得できません.ロガー・ゲットロギング()で取得できます.ロガーオブジェクトの取得方法は多く、APIドキュメントを参照することができますが、あるオブジェクトの中で、そのオブジェクトが属するクラスをパラメータとしてロギング.get Logger(Class clazz)を呼び出して、loggerオブジェクトを取得することが、現在知られている最も理性的なネーミングlogger方法とされています.
②ログ4 jのログレベル(レベル) 各loggerにはログレベルがあります.ログの出力を制御します.割り当てられていないレベルのロゴは、一番近い親のログレベルを自動的に継承します.ロギングの高さは以下の通りです. ALL<DEBUG<INFO<WARN<ERROR>FATAL<OFF
③Log 4 jの出力端末(Apenderインターフェース)
org.apache.log4j.ConsoleAppender( )
org.apache.log4j.FileAppender( )
org.apache.log4j.DailyRollingFileAppender( )
org.apache.log4j.RollingFileAppender( , 。)
org.apache.log4j.WriterAppender( )
デフォルトでは、子loggerは親のloggerのすべてのアプリを引き継ぎます.④Log 4 jの出力レイアウトパターン(Layoutインターフェース) Log 4 j提供Layoutには以下の種類があります.
org.apache.log4j.HTMLLayout( HTML )
org.apache.log4j.PatternLayout( )
org.apache.log4j.SimpleLayout( )
org.apache.log4j.TTCCLayout( 、 、 )
Log 4 jは、C言語のprintf関数と同様の印刷フォーマットログ情報を採用する.印刷パラメータは以下の通りです.%m: 。
%p: 。
%r: log 。
%c: , 。
%n: 。Windows “\r
”,UNIX “
”。
%d: , ISO8601, “%d{ABSOLUTE}”, :“2007-05-07 18:23:23,500”, 。
%l: , 、 , 。
%m: 。
%c: , 。
%t: 。
⑤Log 4 jの配置実際の使用では、Log 4 jは、一般にプロファイル構成によって使用される.プロファイルは二つの種類があります.Java propertiesとXMLファイルです.一般的にはpropertiesファイルを使用して配置します.簡潔で読みやすいからです.以下はJava propertiesの構成のみを紹介します. ロギング4 jに対する配置はロギングとロギングの配置である.主な構成項目は、ロトロギング、出力端末、出力レイアウトモードであり、すべての構成項目はlog 4 jで始まる必要がある. プロファイルの例
##Log4J
##Log4J 、 、 、 、 、 。 。
## (log4j.properties) , liigo 。
log4j.rootLogger = DEBUG, CONSOLE,A1 log4j.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
# socket
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=ERROR
log4j.appender.MAIL.BufferSize=1
log4j.appender.MAIL.SMTPHost=smtp.163.com
[email protected]
log4j.appender.MAIL.SMTPUsername=sexjl1
log4j.appender.MAIL.SMTPPassword=259695
log4j.appender.MAIL.Subject=Log4J Message
[email protected],[email protected]
log4j.appender.MAIL.Encoding=UTF-8
#Bcc mean send copy to this email
[email protected]
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d{yy-MM-dd HH:mm:ss} - %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.DATABASE.sql = INSERT INTO LOG4J (Message) VALUES ( ' [framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n ' )
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
# Appender
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
# com.bobo.code.web.controller WARN ,
# log.warn("message"),log.info("message"),log.error("message") .
#log.debug("message") , debug<WARN
# , WARN >=rootLogger DEBUG ( >= )
log4j.logger.com.bobo.code.web.controller=WARN
#
プロファイルの詳細説明:log 4 j.root Loggar=[level],apenderName,apenderName,…解釈:
このうち、levelはログ記録の優先度であり、OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALLまたはカスタムレベルに分類される.Log 4 jは、4つのレベルだけを使用することを推奨しており、優先度が高いものから低いものまでそれぞれERROR、WARN、INFO、DEBUGである.ここで定義されたレベルによって、アプリケーションの各レベルのログ情報のスイッチを制御することができます.例えば、ここでINFOレベルを定義していますが、このレベル以上のものだけが処理されています.このアプリケーションのDEBUGレベルのログ情報はプリントされません.ALL:すべてのログを印刷し、OFF:すべてのログ出力をオフにします.apenderNameとは、ログ情報をどこに出力するかを指定します.複数の出力先を同時に指定できます.
ロゴ4 j.addivity.org.apache=true 説明: 子ロギングは父ロギングの出力元(appender)のロゴビットを継承しているかどうかです.具体的には、デフォルトではロギングは父ロガーのappenderを継承しています.つまりロギングは父ロガーのappenderから出力されます.additivityがfalseに設定されていると、子Loggarは自分のapenderにだけ出力します.父Loggerのapenderには出力しません.