Java 配置log 將日志信息輸出到指定日志文件中
更新時間:2023年09月08日 09:58:13 作者:晴天陰天下雨天
這篇文章主要介紹了Java 配置log 將日志信息輸出到指定日志文件中,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
## Java配置log 將日志信息輸出到指定日志文件中
1、需要用到的pom.xml依賴
<!--日志捕獲--> <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è)置日志輸出級別以及輸出目的地,可以設(shè)置多個輸出目的地, # 以逗號分隔,輸出目的地的詳細(xì)設(shè)置為下面的Appender設(shè)置. # 注意:此處設(shè)置的Appender名稱應(yīng)與下面詳細(xì)設(shè)置相對應(yīng),包括大小寫; # 此處配置了幾個Appender,下面就應(yīng)設(shè)置幾個。 log4j.rootLogger=DEBUG, STDOUT,INF,ERR,HHT,SL,TCC # 輸出目的地詳細(xì)設(shè)置: #定義對應(yīng)輸出目的地:log4j.appender.appenderName = fully.qualified.name.of.appender.class. #### ConsoleAppender:控制臺輸出 #### log4j.appender.STDOUT = org.apache.log4j.ConsoleAppender # 輸出到控制臺 log4j.appender.STDOUT.Target = System.out # 指定控制臺輸出日志級別 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 自定義級別,需要使用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 # 指定輸出日志級別 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 # 指定分隔周期:月,周,天,時,分 # '.': 每月 # '.'yyyy-ww: 每周 # '.'yyyy-MM-dd: 每天 # '.'yyyy-MM-dd-a: 每天兩次 # '.'yyyy-MM-dd-HH: 每小時 # '.'yyyy-MM-dd-HH-mm: 每分鐘 log4j.appender.INF.DatePattern ='.'yyyy-MM-dd-HH-mm # 日志輸出布局 log4j.appender.INF.layout = org.apache.log4j.PatternLayout # 如果日志輸出布局為PatternLayout 自定義級別,需要使用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: 限定單個文件大小,達到閥值輸出到新文件 #### log4j.appender.ERR = org.apache.log4j.RollingFileAppender # 指定輸出文件路徑 log4j.appender.ERR.File = D:/log/error.log # 指定輸出日志級別 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è)置單個文件大小限制 log4j.appender.ERR.MaxFileSize = 2MB # 設(shè)置最大備份文件記錄數(shù) log4j.appender.ERR.MaxBackupIndex = 20 # 日志輸出布局 log4j.appender.ERR.layout = org.apache.log4j.PatternLayout # 如果日志輸出布局為PatternLayout 自定義級別,需要使用ConversionPattern指定輸出格式 log4j.appender.ERR.layout.ConversionPattern =RFA-[framework] [%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p] -%c -%r -%l.%M(%L) | %m%n ####測試輸出布局:HTMLLayout #### log4j.appender.HHT = org.apache.log4j.RollingFileAppender # 指定輸出文件路徑 log4j.appender.HHT.File = D:/log/log4jHtml.html # 指定輸出日志級別 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è)置單個文件大小限制 log4j.appender.HHT.MaxFileSize = 2MB # 設(shè)置最大備份文件記錄數(shù) log4j.appender.HHT.MaxBackupIndex = 20 # 日志輸出布局 log4j.appender.HHT.layout = org.apache.log4j.HTMLLayout ####測試輸出布局:SimpleLayout #### log4j.appender.SL = org.apache.log4j.RollingFileAppender # 指定輸出文件路徑 log4j.appender.SL.File = D:/log/log4jSL.html # 指定輸出日志級別 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è)置單個文件大小限制 log4j.appender.SL.MaxFileSize = 2MB # 設(shè)置最大備份文件記錄數(shù) log4j.appender.SL.MaxBackupIndex = 20 # 日志輸出布局 log4j.appender.SL.layout = org.apache.log4j.HTMLLayout ####測試輸出布局:TTCCLayout #### log4j.appender.TCC = org.apache.log4j.RollingFileAppender # 指定輸出文件路徑 log4j.appender.TCC.File = D:/log/log4jTCC.log # 指定輸出日志級別 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è)置單個文件大小限制 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/' > <!-- 輸出到控制臺 --> <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> <!--過濾器設(shè)置輸出的級別--> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <!-- 設(shè)置日志輸出的最小級別 --> <param name="levelMin" value="WARN" /> <!-- 設(shè)置日志輸出的最大級別 --> <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)生一個新的日志文件 --> <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è)置是否在重新啟動服務(wù)時,在原有日志的基礎(chǔ)添加新日志 --> <param name="Append" value="true" /> <!-- 設(shè)置保存?zhèn)浞莼貪L日志的最大個數(shù) --> <param name="MaxBackupIndex" value="10" /> <!-- 設(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、測試將數(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("真高興,我輸出到指定的日志文件中來了"); } }
執(zhí)行方法后,日志信息被打印到了D:/log/info.log文件中
同時在控制臺中也有打印輸出
到此這篇關(guān)于Java 配置log 將日志信息輸出到指定日志文件中的文章就介紹到這了,更多相關(guān)java log日志輸出指定日志文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea與eclipse項目相互導(dǎo)入的過程(圖文教程)
這篇文章主要介紹了idea與eclipse項目相互導(dǎo)入的過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03關(guān)于SpringCloud整合RabbitMQ的實例
這篇文章主要介紹了關(guān)于SpringCloud整合RabbitMQ的實例,消息隊列是指利用高效可靠的消息傳遞機制進行與平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成,是在消息的傳輸過程中保存消息的容器,需要的朋友可以參考下2023-07-07