程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java自界說日記輸入文件(log4j日記文件輸入多個自界說日記文件)

java自界說日記輸入文件(log4j日記文件輸入多個自界說日記文件)

編輯:關於JAVA

java自界說日記輸入文件(log4j日記文件輸入多個自界說日記文件)。本站提示廣大學習愛好者:(java自界說日記輸入文件(log4j日記文件輸入多個自界說日記文件))文章只能為提供參考,不一定能成為您想要的結果。以下是java自界說日記輸入文件(log4j日記文件輸入多個自界說日記文件)正文


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 輸入發生該日記事宜的線程名

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved