亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java自定義日志輸出文件(log4j日志文件輸出多個自定義日志文件)

2019-11-26 15:47:21
字體:
來源:轉載
供稿:網友

log4j輸出多個自定義日志文件

如果在實際應用中需要輸出獨立的日志文件,怎樣才能把所需的內容從原有日志中分離,形成單獨的日志文件呢?

先看一個常見的log4j.properties文件,它是在控制臺和test.log文件中記錄日志:

復制代碼 代碼如下:

log4j.rootLogger=DEBUG, stdout, logfile 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n 

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=log/test.log
log4j.appender.logfile.MaxFileSize=128MB
log4j.appender.logfile.MaxBackupIndex=3
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

如果在同一類中需要輸出多個日志文件呢?其實道理是一樣的,先在Test.java中定義:

復制代碼 代碼如下:

private static Log logger1 = LogFactory.getLog("mylogger1");

private static Log logger2 = LogFactory.getLog("mylogger2");


log4j.properties中配置如下:

復制代碼 代碼如下:

log4j.logger.mylogger1=DEBUG,test1
log4j.appender.test1=org.apache.log4j.FileAppender
log4j.appender.test1.File=log/test1.log
log4j.appender.test1.layout=org.apache.log4j.PatternLayout
log4j.appender.test1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

log4j.logger.mylogger2=DEBUG,test2
log4j.appender.test2=org.apache.log4j.FileAppender
log4j.appender.test2.File=log/test2.log
log4j.appender.test2.layout=org.apache.log4j.PatternLayout
log4j.appender.test2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

不同日志要使用不同的logger(如輸出到test1.log的要用logger1.info("abc"))。

還有一個問題,就是這些自定義的日志默認是同時輸出到log4j.rootLogger所配置的日志中的,如何能只讓它們輸出到自己指定的日志中呢?別急,這里有個開關:

log4j.additivity. mylogger1 = false

它用來設置是否同時輸出到log4j.rootLogger所配置的日志中,設為false就不會輸出到其它地方了。

但是這種方式有個小缺陷,那就是打印的日志中類名只能是mylogger或者mylogger2。

2 動態配置路徑
若程序需要的日志路徑需要不斷的變化,而又不可能每次都去改配置文件,此時可以利用環境變量來解決。

log4j的配置如下:

復制代碼 代碼如下:

log4j.rootLogger=DEBUG,INFOLOG,DEBUGLOG

#info log
log4j.appender.INFOLOG =org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFOLOG.File= ${log.dir}/${log.info.file}
log4j.appender.INFOLOG.DatePattern=.yyyy-MM-dd
log4j.appender.INFOLOG.Threshold=INFO
log4j.appender.INFOLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.INFOLOG.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

#debug log
log4j.appender.DEBUGLOG =org.apache.log4j.RollingFileAppender
log4j.appender.DEBUGLOG.File= ${log.dir}/${log.debug.file}
log4j.appender.DEBUGLOG.Threshold=DEBUG
log4j.appender.DEBUGLOG.MaxFileSize=128MB
log4j.appender.DEBUGLOG.MaxBackupIndex=3
log4j.appender.DEBUGLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.DEBUGLOG.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c.%M(%L) - %m%n

此時,在使用log打印日志之前,需要利用System定義日志的輸出路徑和文件名的環境變量:

復制代碼 代碼如下:

System.setProperty(“log.dir”, logDir);

System.setProperty(“log.info.file”, infoLogFileName);

System.setProperty(“log.debug.file”, debugLogFileName);

附:Pattern參數的格式含義

%c 輸出日志信息所屬的類的全名

%d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },輸出類似:2013-8-19- 22:10:28

%f 輸出日志信息所屬的類的類名

%l 輸出日志事件的發生位置,即輸出日志信息的語句處于它所在的類的第幾行

%m 輸出代碼中指定的信息,如log(message)中的message

%n 輸出一個回車換行符,Windows平臺為“/r/n”,Unix平臺為“/n”

%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則為DEBUG,依此類推

%r 輸出自應用啟動到輸出該日志信息所耗費的毫秒數

%t 輸出產生該日志事件的線程名

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
性欧美在线看片a免费观看| 亚洲欧美三级在线| 日韩在线观看免费高清完整版| 91精品国产91久久久久久不卡| 国产精品视频白浆免费视频| 欧美精品国产精品日韩精品| 亚洲综合第一页| 亚洲大尺度美女在线| 久久av资源网站| 成人情趣片在线观看免费| 亚洲人成电影在线播放| 国产脚交av在线一区二区| 91在线精品视频| 激情亚洲一区二区三区四区| 97在线精品国自产拍中文| 青青a在线精品免费观看| 精品国产一区二区三区久久久狼| 亚洲精品www久久久| 国产一区二区三区在线免费观看| 91精品国产91久久久久福利| 欧美一级淫片aaaaaaa视频| 日韩av综合网| 青草青草久热精品视频在线网站| 亚洲国产精品一区二区久| 欧美日韩激情美女| 成人写真视频福利网| 亚洲欧洲在线播放| 日韩电影免费观看中文字幕| 国产精品人成电影| 欧美激情亚洲综合一区| 久久综合色影院| 成人啪啪免费看| 亚洲成人久久电影| 2018日韩中文字幕| 一级做a爰片久久毛片美女图片| 精品久久久999| 午夜精品一区二区三区在线播放| 欧美重口另类videos人妖| 欧美日韩人人澡狠狠躁视频| 热久久免费国产视频| 亚洲成人av片在线观看| 人人澡人人澡人人看欧美| 欧美成人精品不卡视频在线观看| 播播国产欧美激情| 日韩精品免费电影| 久久成人精品电影| 亚洲国产精彩中文乱码av在线播放| 久久久久久久久久婷婷| 欧美色另类天堂2015| 最近2019中文字幕一页二页| 亚洲a区在线视频| 国产91在线播放精品91| 亚洲一区二区久久| 乱亲女秽乱长久久久| 亚洲欧美另类国产| 欧美精品久久一区二区| 国产综合在线观看视频| 久久九九亚洲综合| 久久91精品国产91久久跳| 日韩一区二区久久久| 操日韩av在线电影| 麻豆一区二区在线观看| 久久精品国产亚洲7777| 日韩成人激情在线| 中文字幕久热精品在线视频| 国内精品伊人久久| 日韩欧美在线视频免费观看| 久久99久国产精品黄毛片入口| 亚洲a区在线视频| 亚洲理论片在线观看| 精品欧美aⅴ在线网站| 97视频在线观看亚洲| 欧美特黄级在线| 日韩中文视频免费在线观看| 国产欧美日韩最新| 亚洲护士老师的毛茸茸最新章节| 96精品久久久久中文字幕| 亚洲毛片在线观看| 欧美一级黄色网| 成人免费视频在线观看超级碰| 最近2019年日本中文免费字幕| 岛国av一区二区三区| 成人欧美一区二区三区黑人孕妇| 国产精品久久久久久久久久久不卡| 国内精品久久久久影院 日本资源| 成人有码在线视频| 久久久久国产视频| 另类少妇人与禽zozz0性伦| 精品综合久久久久久97| 久久国内精品一国内精品| 久久这里有精品视频| 中文亚洲视频在线| 国产日韩欧美在线视频观看| 免费91麻豆精品国产自产在线观看| 91免费国产网站| 日韩精品免费在线视频观看| 国产日韩在线观看av| 亚洲人成电影网站色xx| 98精品国产高清在线xxxx天堂| 精品久久久久久久久久久| 日韩免费看的电影电视剧大全| 国产精品18久久久久久首页狼| 国产69精品久久久久久| 亚洲成av人片在线观看香蕉| 欧美一级片在线播放| 日韩av中文字幕在线免费观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 成人黄色av网| 91精品国产综合久久男男| 成人欧美一区二区三区在线湿哒哒| 日韩一区av在线| 中文字幕精品av| 国内偷自视频区视频综合| 日韩在线中文视频| 在线精品国产欧美| 91精品免费视频| 欧美激情第99页| 97在线观看免费| 久久综合亚洲社区| 黑人巨大精品欧美一区二区一视频| 91成人天堂久久成人| 日韩免费在线看| 日本中文字幕不卡免费| 亚洲人午夜色婷婷| 欧美一级免费视频| 国产69精品久久久久久| 51午夜精品视频| 欧美日韩激情视频| 精品国产一区二区三区四区在线观看| 日本一区二区在线免费播放| 海角国产乱辈乱精品视频| 91沈先生在线观看| 九九九热精品免费视频观看网站| 一本色道久久88综合亚洲精品ⅰ| 日韩电影免费观看中文字幕| 国产欧美 在线欧美| 欧洲成人性视频| xxxxxxxxx欧美| 欧美成人免费一级人片100| 欧美一区二区三区精品电影| 国产成人欧美在线观看| 国产精品白嫩美女在线观看| 国产欧美婷婷中文| 国产精品wwww| 亚洲人成在线观看| 日韩av不卡在线| 欧美日韩在线视频首页| 亚洲国产欧美一区二区丝袜黑人| 欧美一级视频在线观看| 成人免费视频xnxx.com| 日韩国产欧美精品一区二区三区| 亚洲第一免费播放区| 欧美精品一区在线播放| 日本国产欧美一区二区三区| 亚洲精品国产欧美| 亚洲国产精品久久精品怡红院| 亚洲国产精品人久久电影| 成人免费网站在线| 97在线视频一区| 日韩大陆毛片av| 国产人妖伪娘一区91| 国产成人综合亚洲| 国产精品一区二区久久久| 亚洲最大成人网色|