婷婷色中文在线视频,思思热在线视频日本一区,欧美精品一区三区在线观看,日本色逼影音资源

  • <dfn id="pbiqm"><cite id="pbiqm"></cite></dfn>
        
        

        我要投稿 投訴建議

        如何用log4j輸出多個(gè)自定義日志文件

        時(shí)間:2021-04-13 15:08:18 日志日記 我要投稿

        如何用log4j輸出多個(gè)自定義日志文件

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

        如何用log4j輸出多個(gè)自定義日志文件

          如果在實(shí)際應(yīng)用中需要輸出獨(dú)立的日志文件,怎樣才能把所需的內(nèi)容從原有日志中分離,形成單獨(dú)的日志文件呢?

          先看一個(gè)常見(jiàn)的log4j.properties文件,它是在控制臺(tái)和test.log文件中記錄日志:

          復(fù)制代碼 代碼如下:

          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

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

          復(fù)制代碼 代碼如下:

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

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

          log4j.properties中配置如下:

          復(fù)制代碼 代碼如下:

          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"))。

          還有一個(gè)問(wèn)題,就是這些自定義的日志默認(rèn)是同時(shí)輸出到log4j.rootLogger所配置的日志中的,如何能只讓它們輸出到自己指定的日志中呢?別急,這里有個(gè)開(kāi)關(guān):

          log4j.additivity. mylogger1 = false

          它用來(lái)設(shè)置是否同時(shí)輸出到log4j.rootLogger所配置的日志中,設(shè)為false就不會(huì)輸出到其它地方了。

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

          2 動(dòng)態(tài)配置路徑

          若程序需要的日志路徑需要不斷的變化,而又不可能每次都去改配置文件,此時(shí)可以利用環(huán)境變量來(lái)解決。

          log4j的配置如下:

          復(fù)制代碼 代碼如下:

          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

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

          復(fù)制代碼 代碼如下:

          System.setProperty(“l(fā)og.dir”, logDir);

          System.setProperty(“l(fā)og.info.file”, infoLogFileName);

          System.setProperty(“l(fā)og.debug.file”, debugLogFileName);

          附:Pattern參數(shù)的格式含義

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

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

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

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

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

          %n 輸出一個(gè)回車換行符,Windows平臺(tái)為“/r/n”,Unix平臺(tái)為“/n”

          %p 輸出優(yōu)先級(jí),即DEBUG,INFO,WARN,ERROR,F(xiàn)ATAL。如果是調(diào)用debug()輸出的,則為DEBUG,依此類推

          %r 輸出自應(yīng)用啟動(dòng)到輸出該日志信息所耗費(fèi)的毫秒數(shù)

          %t 輸出產(chǎn)生該日志事件的線程名

          

        【如何用log4j輸出多個(gè)自定義日志文件】相關(guān)文章:

        關(guān)于將文件夾下所有文件輸出到日志文件中的方法06-23

        MySQL日志文件的概述06-23

        如何用信紙寫日志06-24

        男人如書-日志07-01

        鮮血如紅唇日志04-16

        燦爛如陽(yáng)日志04-15

        生活如熬粥的日志06-23

        世事如棋日志04-16

        靜如秋葉日志04-17