Java 配置log 將日志信息輸出到指定日志文件中
## Java配置log 將日志信息輸出到指定日志文件中
1、需要用到的pom.xml依賴(lài)
<!--日志捕獲--> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1</version> </dependency>
2、在src目錄下新建log4j.propertites文件或log4j.xml文件
2.1 以idea為例子:
2.2 給propertites文件命名
log4j.propertites文件
#log4j.rootLogger=[level],[Appender1],[Appender2],[Appender3].... #這一句的意思就是設(shè)置日志輸出級(jí)別以及輸出目的地,可以設(shè)置多個(gè)輸出目的地, # 以逗號(hào)分隔,輸出目的地的詳細(xì)設(shè)置為下面的Appender設(shè)置. # 注意:此處設(shè)置的Appender名稱(chēng)應(yīng)與下面詳細(xì)設(shè)置相對(duì)應(yīng),包括大小寫(xiě); # 此處配置了幾個(gè)Appender,下面就應(yīng)設(shè)置幾個(gè)。 log4j.rootLogger=DEBUG, STDOUT,INF,ERR,HHT,SL,TCC # 輸出目的地詳細(xì)設(shè)置: #定義對(duì)應(yīng)輸出目的地:log4j.appender.appenderName = fully.qualified.name.of.appender.class. #### ConsoleAppender:控制臺(tái)輸出 #### log4j.appender.STDOUT = org.apache.log4j.ConsoleAppender # 輸出到控制臺(tái) log4j.appender.STDOUT.Target = System.out # 指定控制臺(tái)輸出日志級(jí)別 log4j.appender.STDOUT.Threshold = INFO # 默認(rèn)值是 true, 表示是否立即輸出 log4j.appender.STDOUT.ImmediateFlush = true # 設(shè)置編碼方式 log4j.appender.STDOUT.Encoding = UTF-8 # 日志輸出布局 log4j.appender.STDOUT.layout = org.apache.log4j.PatternLayout # 如果日志輸出布局為PatternLayout 自定義級(jí)別,需要使用ConversionPattern指定輸出格式 log4j.appender.STDOUT.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p] -%c -%r -%l.%M(%L) | %m%n #### DailyRollingFileAppender: 指定周期輸出到新文件 #### log4j.appender.INF = org.apache.log4j.DailyRollingFileAppender # 指定輸出文件路徑 log4j.appender.INF.File = D:/log/info.log # 指定輸出日志級(jí)別 log4j.appender.INF.Threshold = INFO # 默認(rèn)為true,意味著輸出方式為追加,反之則為覆蓋 log4j.appender.INF.Append = true # 默認(rèn)值是 true, 表示是否立即輸出 log4j.appender.INF.ImmediateFlush = true # 設(shè)置編碼方式 log4j.appender.INF.Encoding = UTF-8 # 指定分隔周期:月,周,天,時(shí),分 # '.': 每月 # '.'yyyy-ww: 每周 # '.'yyyy-MM-dd: 每天 # '.'yyyy-MM-dd-a: 每天兩次 # '.'yyyy-MM-dd-HH: 每小時(shí) # '.'yyyy-MM-dd-HH-mm: 每分鐘 log4j.appender.INF.DatePattern ='.'yyyy-MM-dd-HH-mm # 日志輸出布局 log4j.appender.INF.layout = org.apache.log4j.PatternLayout # 如果日志輸出布局為PatternLayout 自定義級(jí)別,需要使用ConversionPattern指定輸出格式 log4j.appender.INF.layout.ConversionPattern =DFA-[framework] [%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p] -%c -%r -%l.%M(%L) | %m%n #### RollingFileAppender: 限定單個(gè)文件大小,達(dá)到閥值輸出到新文件 #### log4j.appender.ERR = org.apache.log4j.RollingFileAppender # 指定輸出文件路徑 log4j.appender.ERR.File = D:/log/error.log # 指定輸出日志級(jí)別 log4j.appender.ERR.Threshold = INFO # 默認(rèn)為true,意味著輸出方式為追加,反之則為覆蓋 log4j.appender.ERR.Append = true # 默認(rèn)值是 true, 表示是否立即輸出 log4j.appender.ERR.ImmediateFlush = true # 設(shè)置編碼方式 log4j.appender.ERR.Encoding = UTF-8 # 設(shè)置單個(gè)文件大小限制 log4j.appender.ERR.MaxFileSize = 2MB # 設(shè)置最大備份文件記錄數(shù) log4j.appender.ERR.MaxBackupIndex = 20 # 日志輸出布局 log4j.appender.ERR.layout = org.apache.log4j.PatternLayout # 如果日志輸出布局為PatternLayout 自定義級(jí)別,需要使用ConversionPattern指定輸出格式 log4j.appender.ERR.layout.ConversionPattern =RFA-[framework] [%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p] -%c -%r -%l.%M(%L) | %m%n ####測(cè)試輸出布局:HTMLLayout #### log4j.appender.HHT = org.apache.log4j.RollingFileAppender # 指定輸出文件路徑 log4j.appender.HHT.File = D:/log/log4jHtml.html # 指定輸出日志級(jí)別 log4j.appender.HHT.Threshold = DEBUG # 默認(rèn)為true,意味著輸出方式為追加,反之則為覆蓋 log4j.appender.HHT.Append = true # 默認(rèn)值是 true, 表示是否立即輸出 log4j.appender.HHT.ImmediateFlush = true # 設(shè)置編碼方式 log4j.appender.HHT.Encoding = UTF-8 # 設(shè)置單個(gè)文件大小限制 log4j.appender.HHT.MaxFileSize = 2MB # 設(shè)置最大備份文件記錄數(shù) log4j.appender.HHT.MaxBackupIndex = 20 # 日志輸出布局 log4j.appender.HHT.layout = org.apache.log4j.HTMLLayout ####測(cè)試輸出布局:SimpleLayout #### log4j.appender.SL = org.apache.log4j.RollingFileAppender # 指定輸出文件路徑 log4j.appender.SL.File = D:/log/log4jSL.html # 指定輸出日志級(jí)別 log4j.appender.SL.Threshold = INFO # 默認(rèn)為true,意味著輸出方式為追加,反之則為覆蓋 log4j.appender.SL.Append = true # 默認(rèn)值是 true, 表示是否立即輸出 log4j.appender.SL.ImmediateFlush = true # 設(shè)置編碼方式 log4j.appender.SL.Encoding = UTF-8 # 設(shè)置單個(gè)文件大小限制 log4j.appender.SL.MaxFileSize = 2MB # 設(shè)置最大備份文件記錄數(shù) log4j.appender.SL.MaxBackupIndex = 20 # 日志輸出布局 log4j.appender.SL.layout = org.apache.log4j.HTMLLayout ####測(cè)試輸出布局:TTCCLayout #### log4j.appender.TCC = org.apache.log4j.RollingFileAppender # 指定輸出文件路徑 log4j.appender.TCC.File = D:/log/log4jTCC.log # 指定輸出日志級(jí)別 log4j.appender.TCC.Threshold = INFO # 默認(rèn)為true,意味著輸出方式為追加,反之則為覆蓋 log4j.appender.TCC.Append = true # 默認(rèn)值是 true, 表示是否立即輸出 log4j.appender.TCC.ImmediateFlush = true # 設(shè)置編碼方式 log4j.appender.TCC.Encoding = UTF-8 # 設(shè)置單個(gè)文件大小限制 log4j.appender.TCC.MaxFileSize = 2MB # 設(shè)置最大備份文件記錄數(shù) log4j.appender.TCC.MaxBackupIndex = 20 # 日志輸出布局 log4j.appender.TCC.layout = org.apache.log4j.SimpleLayout
log4j.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/' > <!-- 輸出到控制臺(tái) --> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> <!-- 設(shè)置日志輸出的樣式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 設(shè)置日志輸出的格式 --> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> </layout> <!--過(guò)濾器設(shè)置輸出的級(jí)別--> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <!-- 設(shè)置日志輸出的最小級(jí)別 --> <param name="levelMin" value="WARN" /> <!-- 設(shè)置日志輸出的最大級(jí)別 --> <param name="levelMax" value="ERROR" /> <!-- 設(shè)置日志輸出的xxx,默認(rèn)是false --> <param name="AcceptOnMatch" value="true" /> </filter> </appender> <!-- 輸出到文件: DailyRollingFileAppender--> <appender name="daily" class="org.apache.log4j.DailyRollingFileAppender"> <!-- 設(shè)置日志信息輸出文件全路徑名 --> <param name="File" value="D:/log/DailyRollingFileAppender.log" /> <!-- 設(shè)置日志每分鐘回滾一次,即產(chǎn)生一個(gè)新的日志文件 --> <param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm'.log'" /> <!-- 附加 --> <param name="Append" value="true"/> <!-- 設(shè)置日志輸出的樣式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 設(shè)置日志輸出的格式 --> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> </layout> </appender> <!-- 輸出到文件: RollingFileAppender--> <appender name="rolling" class="org.apache.log4j.RollingFileAppender"> <!-- 設(shè)置日志信息輸出文件全路徑名 --> <param name="File" value="D:/log4j/RollingFileAppender.log" /> <!-- 設(shè)置是否在重新啟動(dòng)服務(wù)時(shí),在原有日志的基礎(chǔ)添加新日志 --> <param name="Append" value="true" /> <!-- 設(shè)置保存?zhèn)浞莼貪L日志的最大個(gè)數(shù) --> <param name="MaxBackupIndex" value="10" /> <!-- 設(shè)置當(dāng)日志文件達(dá)到此閾值的時(shí)候自動(dòng)回滾,單位可以是KB,MB,GB,默認(rèn)單位是KB --> <param name="MaxFileSize" value="10KB" /> <!-- 設(shè)置日志輸出的樣式 --> <layout class="org.apache.log4j.PatternLayout"> <!-- 設(shè)置日志輸出的格式 --> <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" /> </layout> </appender> <!-- 根logger的設(shè)置--> <root> <level value ="INFO"/> <appender-ref ref="CONSOLE"/> <appender-ref ref="daily"/> </root> </log4j:configuration>
3、測(cè)試將數(shù)據(jù)信息輸出到日志文件中去
package application; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class TestQuartz { private static Log log = LogFactory.getLog(TestQuartz.class); public static void main(String[] args) { log.info("真高興,我輸出到指定的日志文件中來(lái)了"); } }
執(zhí)行方法后,日志信息被打印到了D:/log/info.log文件中
同時(shí)在控制臺(tái)中也有打印輸出
到此這篇關(guān)于Java 配置log 將日志信息輸出到指定日志文件中的文章就介紹到這了,更多相關(guān)java log日志輸出指定日志文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中Request請(qǐng)求轉(zhuǎn)發(fā)詳解
這篇文章主要介紹了Java中Request請(qǐng)求轉(zhuǎn)發(fā)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Maven分模塊開(kāi)發(fā)執(zhí)行指令失敗的問(wèn)題
Maven分模塊開(kāi)發(fā),行指令失敗,modules.module[3]‘ specifies duplicate child module maven_dao @ line 29, column 1的問(wèn)題,本文給大家分享解決方法,感興趣的朋友跟隨小編一起看看吧2020-09-09使用Feign實(shí)現(xiàn)微服務(wù)間文件傳輸
這篇文章主要為大家詳細(xì)介紹了使用Feign實(shí)現(xiàn)微服務(wù)間文件傳輸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04idea與eclipse項(xiàng)目相互導(dǎo)入的過(guò)程(圖文教程)
這篇文章主要介紹了idea與eclipse項(xiàng)目相互導(dǎo)入的過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03關(guān)于SpringCloud整合RabbitMQ的實(shí)例
這篇文章主要介紹了關(guān)于SpringCloud整合RabbitMQ的實(shí)例,消息隊(duì)列是指利用高效可靠的消息傳遞機(jī)制進(jìn)行與平臺(tái)無(wú)關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來(lái)進(jìn)行分布式系統(tǒng)的集成,是在消息的傳輸過(guò)程中保存消息的容器,需要的朋友可以參考下2023-07-07

Java實(shí)現(xiàn)上傳文件到服務(wù)器的示例代碼