一、直接使用:
// output1.txt致命的な/////////////////////////aback hunnu.sanha.test; Import org.apache.log4j.level; import org.apache.log4j.logger; import org.apache.log4j.simplerayout; public.log4j.file.log4j.filecache.log4j.filecache.log4j.file.log4j. simpandfile {static logger logger = logger.getLogger(simpandfile.class); public static void main(string args []){simplelayout layout = new simplelayout(); fileappender appender = null; try {appender = new fileappender(layout、 "output1.txt"、false); } catch(例外e){} logger.addappender(appender); logger.setLevel((レベル)level。); logger.debug( "ここにいくつかのデバッグがあります"); logger.info( "ここにいくつかの情報があります"); logger.warn( "ここにいくつかの警告があります"); logger.error( "ここにいくつかのエラーがあります"); logger.fatal( "ここに致命的なものがあります"); }} // logger logger = logger.getLogger(htmlandwrite.class); public static void main(string args []){htmllayout layout = new htmllayout(); writerappender appender = null; try {fileoutputStream output = new fileoutputStream( "output2.html"); Appender = new WriterAppender(レイアウト、出力); } catch(例外e){} logger.addappender(appender); logger.setLevel((レベル)level。); logger.debug( "ここにいくつかのデバッグがあります"); logger.info( "ここにいくつかの情報があります"); logger.warn( "ここにいくつかの警告があります"); logger.error( "ここにいくつかのエラーがあります"); logger.fatal( "ここに致命的なものがあります"); }} //////////////////////////////////////////////////////////////////プログラムの開始:発信者の0ClassName:hunnu.sanha.test.consandpattdate in iso8601形式:2008-07-29 11:02:30,578ログイベントのロケーション:hunnu.sanha.test.consandpatt.main発信者:hunnu.sanha.test.consandpattdate in iso8601形式:2008-07-29 11:02:30,593ログイベントのロケーション:hunnu.sanha.test.consandpatt.main(consandpatt.java:21) Hunnu.sanha.test.consandpattdate in iso8601形式:2008-07-29 11:02:30,593ログイベントのロケーション:Hunnu.sanha.test.consandpatt.main(consandpatt.java:22)メッセージ:メッセージ:ここでは、プログラムの開始時のMilliseconds:15classonds:15 classeconds hunnu.sanha.test.consandpattdate in iso8601形式:2008-07-29 11:02:30,593ログイベントのロケーション:Hunnu.sanha.test.consandpatt.main(consandpatt.java:23)メッセージ:メッセージ:ここでは、プログラムの開始時:15 class of class of class of class of:15 classeconds: Hunnu.sanha.test.consandpattdate in iso8601形式:2008-07-29 11:02:30,593ログイベントのロケーション:Hunnu.sanha.test.consandpatt.main(consandpatt.java:24)メッセージ:ここにいくつかあります。 FATAL ////////////////////////////////////////////////パッケージHunnu.sanha.test; Import org.apache.log4j.level; Import org.log4j.logger; org.apache.log4j.patternlayout; Import org.apache.log4j.consoleAppender; public class consandpatt {static logger logger = ogger.getLogger(consandpatt.class); public static void main(string args []){// note、%nはnewline string pattern = "millisecondsプログラム開始時からのミリ秒:%r%n";パターン += "classname of caller:%c%n";パターン += "ISO8601形式の日付:%d {ISO8601}%n";パターン += "ログイベントの場所:%l%n";パターン += "メッセージ:%m%n%n"; PatternLayout Layout = new PatternLayout(pattern); ConsoleAppender Appender = new ConsoleAppender(レイアウト); logger.addappender(appender); logger.setLevel((レベル)level。); logger.debug( "ここにいくつかのデバッグがあります"); logger.info( "ここにいくつかの情報があります"); logger.warn( "ここにいくつかの警告があります"); logger.error( "ここにいくつかのエラーがあります"); logger.fatal( "ここに致命的なものがあります"); }}二、使用配置文件(都直接放到项目文件夹下)
//xmllog4jconfig.xml< ?xmlバージョン= "1.0" encoding = "utf-8"?> <!doctype log4j:構成システム "log4j.dtd"> <log4j:configuration xmlns:log4j = "http://jakarta.apache.org/log4j/ <"> <prag4j/ name = "file" value = "indentify-log.txt"/> <param name = "append" "false"/> <layout> <param name = "conventionpattern" value = "%d [%t]%p-%m%n"/> </layout> </appender> <root> <root> <rifity value "/> <appender-ref ref = </log ref = </log ref => //externalxmltest.javaパッケージhunnu.sanha.external; import org.apache.log4j.logger; import org.apache.log4j.xml.domconfigurator; public class externalxmltest {static logger logger = logger.getlogger(externalxmltest.class); public static void main(string args []){domconfigurator.configure( "xmllog4jconfig.xml"); logger.debug( "ここにいくつかのデバッグがあります"); logger.info( "ここにいくつかの情報があります"); logger.warn( "ここにいくつかの警告があります"); logger.error( "ここにいくつかのエラーがあります"); logger.fatal( "ここに致命的なものがあります"); }} // 10:48:11,375 [Main]エラー - エラー2008-07-29 10:48:11,375 [Main]致命的 - 致命的// PlainLog4JConfig.txt#firatelog4jconfig.txt#debugと呼び、blahlog4j.rootlogger = dabug、blah blahlog4j.appender.blah = org.apache.log4j.consoleAppender#set set set set set seet simplayoutlog4j.appender.blah.layout = org.apache.log4j.simplelayout ///externalplaint.javapackage org.apache.log4j.propertyconfigurator; public class externalPlaintest {static logger logger = logger.getLogger(externalPlaintest.class); public static void main(string args []){propertyconfigurator.configure( "plainlog4jconfig.txt"); logger.debug( "ここにいくつかのデバッグがあります"); logger.info( "ここにいくつかの情報があります"); logger.warn( "ここにいくつかの警告があります"); logger.error( "ここにいくつかのエラーがあります"); logger.fatal( "ここに致命的なものがあります"); }} //附加:
2.1。 日志信息的优先级
off off off致命的、エラー、警告、情報
log4j建议只使用四个级别、优先级从高到低分别是エラー、警告、情報、デバッグ。通过在这里定义的级别、
假如在一个级别为Q的ロガー中发生一个级别为P
比如在这里定义了情報级别、则应用程序中所有デバッグ级别的日志信息将不被打印出来;
2.2。 输出源的使用
有选择的能用或者禁用日志请求仅仅是log4j
appender包括コンソール(控制台)、ファイル(文件)、GUIコンポーネント(图形的组件)、リモートソケットサーバー(ソケット、jms(java 信息服务)、ntイベントロガー、リモートユニックスsyslog daemons
一个ロガー可以设置超过一个的appender。
用アドアペンダー方法添加一个Appender
2.2.1。コンソーペンダー
ConsoleAppender、那么log信息将写到コンソール。效果等同于直接把信息打印到システム。
2.2.2。 FileAppender
使用fileappender、那么log信息将写到指定的文件中。这应该是比较经常使用到的情况。
相应地、在配置文件中应该指定ログlog文件名为dglog.txt
log4j.appender.a2.file = dglog.txt
注意将a2替换为具体配置中appender的别名。
2.2.3。 DailyrollingAppender
使用fileappender可以将log信息输出到文件中、dailyrollingappender。dailyrollingappender
log4j.appender.a2 = org.apache.log4j.dailyrollingfileappender
log4j.appender.a2.file = dglog
log4j.appender.a2.datepattern = '。' yyyy-mm-dd
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern =%5r%-5p%c {2} - %m%n
2.2.4。 org.apache.log4j.rollingfileappender
文件大小到达指定尺寸的时候产生一个新的文件。
log4j.appender.r = org.apache.log4j.rollingfileappender
log4j.appender.r.file = ../logs/dglog.log
#最大ログファイルサイズを制御します
log4j.appender.r.maxfilesize = 100kb
#アーカイブログファイル(こちらのバックアップファイル1つ)
log4j.appender.r.maxbackupindex = 1
log4j.appender.r.layout = org.apache.log4j.patternlayout
log4j.appender.r.layout.conversionpattern =%p%t%c -%m%n
这个配置文件指定了输出源r、是一个轮转日志文件。最大的文件是、100kb、当一个日志文件达到最大尺寸时、log4j会自动把example.log
2.2.5。 org.apache.log4j.writerappender
将日志信息以流格式发送到任意指定的地方。
2.3。レイアウト的配置
レイアウト指定了ログ信息输出的样式。
2.3.1。 布局样式
org.apache.log4j.htmllayout
org.apache.log4j.patternlayout (可以灵活地指定布局模式)、
org.apache.log4j.simplelayout (包含日志信息的级别和信息字符串)、
org.apache.log4j.ttcclayout (包含日志产生的时间、线程、类别等等信息)
2.3.2。 格式
%m输出代码中指定的消息
%p输出优先级、即debug、情報、警告、エラー、致命的
%r输出自应用启动到输出该log信息耗费的毫秒数
%c输出所属的类目、通常就是所在类的全名
%t输出产生该日志事件的线程名
%n输出一个回车换行符、Windows "rn"、unix "n"
%d输出日志时间点的日期或时间、默认格式为ISO8601、也可以在其后指定格式、比如、比如:%d {yyy mmm dd hh:mm:ss、sss}、输出类似输出类似:2002年年10°18°22:10:28、921
%l输出日志事件的发生位置、包括类目名、发生的线程、以及在代码中的行数。举例:testlog4.main(test log4.java:10)
2.3.3。 例子
例子1:显示日期和ログ信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern =%d {yyyy-mm-dd hh:mm:ss、sss}%m%n
打印的信息是:
2002-11-12 11:49:42,866 select * from chore where created desc
例子2:显示日期、log发生地方和log信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern =%d {yyyy-mm-dd hh:mm:ss、sss}%l "#"%m%n
2002-11-12 11:51:46,313 cn.net.unet.weboa.system.dao.roledao.select(roledao.java:409) "#"
select * from chore where created descによる1 = 1オーダー
例子3:显示log级别、时间、调用方法、log信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern = [%-5p]%d {yyyy-mm-dd hh:mm:ss、sss}
方法:%l%n%m%n
ログ信息:
[デバッグ] 2002-11-12 12:00:57,376
方法:cn.net.unet.weboa.system.dao.roledao.select(roledao.java:409)
select * from chore where created descによる1 = 1オーダー
2.4。 配置文件的例子:
log4j.rootlogger = debug
#将dao
log4j.logger.dao = debug、a2、a4
#将逻辑层log记录到businesslog、alllog中
log4j.logger.businesslog = debug、a3、a4
#a1--打印到屏幕上
log4j.appender.a1 = org.apache.log4j.consoleAppender
log4j.appender.a1.layout = org.apache.log4j.patternlayout
log4j.appender.a1.layout.conversionpattern =%-5p [%t]%37c%3x -%m%n
#a2--打印到文件daolog中-专门为dao层服务
log4j.appender.a2 = org.apache.log4j.dailyrollingfileappender
log4j.appender.a2.file = daolog
log4j.appender.a2.datepattern = '。' yyyy-mm-dd
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern = [%-5p]%d {yyyy-mm-dd hh:mm:ss、sss}
方法:%l%n%m%n
#a3--打印到文件businesslog-专门记录逻辑处理层服务log信息
log4j.appender.a3 = org.apache.log4j.dailyrollingfileappender
log4j.appender.a3.file = businesslog
log4j.appender.a3.datepattern = '。' yyyy-mm-dd
log4j.appender.a3.layout = org.apache.log4j.patternlayout
log4j.appender.a3.layout.conversionpattern = [%-5p]%d {yyyy-mm-dd hh:mm:ss、sss}
方法:%l%n%m%n
#a4--打印到文件alllog-记录所有log信息
log4j.appender.a4 = org.apache.log4j.dailyrollingfileappender
log4j.appender.a4.file = alllog
log4j.appender.a4.datepattern = '。' yyyy-mm-dd
log4j.appender.a4.layout = org.apache.log4j.patternlayout
log4j.appender.a4.layout.conversionpattern = [%-5p]%d {yyyy-mm-dd hh:mm:ss、sss}
方法:%l%n%m%n
以上这篇浅谈在java项目中log4j的使用就是小编分享给大家的全部内容了、希望能给大家一个参考、也希望大家多多支持武林网。