国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

SLF4J日志門面

2019-11-14 21:02:43
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
SLF4J日志門面

SLF4J官網(wǎng):http://www.slf4j.org/

SLF4J的作用通俗點(diǎn)講,就是可以讓我們的項(xiàng)目以最小的代價(jià)更換不同的日志系統(tǒng)。無(wú)需修改代碼,只需要添加、刪除相應(yīng)的jar包和配置文件。

1.添加”slf4j-api-xxx.jar”到項(xiàng)目中。(xxx代表版本號(hào),本文用的是1.7.7版本)

2.建個(gè)項(xiàng)目,編寫幾句簡(jiǎn)單的日志記錄的代碼。

//import org.apache.log4j.PRopertyConfigurator;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class test_slf4j {public static void main(String[] args) {// PropertyConfigurator.configure("log4j.properties");Logger logger = LoggerFactory.getLogger(test_slf4j.class);logger.trace("I'm trace log.");logger.debug("I'm debug log.");logger.info("I'm info log.");logger.warn("I'm warn log.");logger.error("I'm error log.");}}

3.下載的SLF4J壓縮包里自帶了很多的日志系統(tǒng),體驗(yàn)一下幾個(gè)常用的。

【Simple】

先來(lái)用一下簡(jiǎn)單日志,添加”slf4j-simple-xxx.jar”到項(xiàng)目中。

image

然后直接運(yùn)行上面的代碼,控制臺(tái)輸出結(jié)果:

[main] INFO test_slf4j - I'm info log.[main] WARN test_slf4j - I'm warn log.[main] ERROR test_slf4j - I'm error log.

貌似因?yàn)闆]有自定義配置文件,默認(rèn)配置把trace和debug級(jí)別的日志給過濾了。

【JDK】

再來(lái)試試jdk自帶的日志系統(tǒng),刪除”slf4j-simple-xxx.jar”,添加”slf4j-jdk14-xxx.jar”到項(xiàng)目中。 注意:項(xiàng)目中不能有多個(gè)日志系統(tǒng),否則SLF4J因?yàn)椴恢烙媚膫€(gè)會(huì)報(bào)錯(cuò)。

image

然后直接運(yùn)行上面的代碼,控制臺(tái)輸出結(jié)果:

八月 30, 2014 12:44:12 下午 test_slf4j main信息: I'm info log.八月 30, 2014 12:44:13 下午 test_slf4j main警告: I'm warn log.八月 30, 2014 12:44:13 下午 test_slf4j main嚴(yán)重: I'm error log.

結(jié)果和簡(jiǎn)單日志差不多,除了日志格式不同,多了日志記錄時(shí)間,也是被過濾了trace和debug級(jí)別的日志。

【Log4j】

上面的日志內(nèi)容實(shí)在是過于簡(jiǎn)單,對(duì)我們實(shí)際開發(fā)可以說(shuō)是作用甚微。日志文件當(dāng)然是越詳細(xì)越好,尤其是在修復(fù)BUG時(shí),能夠準(zhǔn)確的定位到哪一行代碼是極好的。 來(lái)試一下大家常用的Log4j,刪除其他日志系統(tǒng)的jar包,添加”slf4j-log4j12-xxx.jar”,還需添加一個(gè)Log4j1.2版本的jar包,去Log4j的官網(wǎng)上下載一個(gè)。現(xiàn)在Log4j1已經(jīng)停止更新,Log4j2說(shuō)是比1提升非常多。我一開始用SLF4J + Log4j2,但是一直不成功。網(wǎng)上的資料也不多,等回頭有時(shí)間研究一下再寫一篇SLF4J + Log4j2的文章,這里我用的是SLF4J-1.7.7 + Log4j-1.2.17。

添加了需要的jar包,還需添加Log4j的配置文件”log4j.properties”。

image

我配置的log4j.properties具有三種Logger。 Console:控制臺(tái)輸出DEBUG級(jí)別以上的日志。 LogFile:文本記錄INFO級(jí)別以上的日志,文件最大不超過2MB。 ErrorFile:文件記錄ERROR級(jí)別以上的日志,以日期格式命名文件,如“error.log.2014-08-01”、“error.log.2014-08-02”。

# Set log levels #log4j.rootLogger = DEBUG, Console, LogFile, ErrorFile# Output the log info to the java Console #log4j.appender.Console = org.apache.log4j.ConsoleAppenderlog4j.appender.Console.Target = System.outlog4j.appender.Console.Threshold = DEBUGlog4j.appender.Console.layout = org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern = <%-d{yyyy-MM-dd HH:mm:ss}> <%t> %l %n<%p> %m%n%n# Save the log info to the log file #log4j.appender.LogFile = org.apache.log4j.RollingFileAppenderlog4j.appender.LogFile.File = logs/log.loglog4j.appender.LogFile.Append = truelog4j.appender.LogFile.MaxFileSize = 2MBlog4j.appender.LogFile.MaxBackupIndex = 100log4j.appender.LogFile.Threshold = INFOlog4j.appender.LogFile.layout = org.apache.log4j.PatternLayoutlog4j.appender.LogFile.layout.ConversionPattern = <%-d{yyyy-MM-dd HH:mm:ss}> <%t> %l %n<%p> %m%n%n# Save the error info to the error file. A file one day. #log4j.appender.ErrorFile = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.ErrorFile.File = logs/error.loglog4j.appender.ErrorFile.Append = truelog4j.appender.ErrorFile.Threshold = ERRORlog4j.appender.ErrorFile.layout = org.apache.log4j.PatternLayoutlog4j.appender.ErrorFile.layout.ConversionPattern = <%-d{yyyy-MM-dd HH/:mm/:ss}> <%t> %l %n<%p> %m%n%n

在src根目錄下創(chuàng)建“l(fā)og4j.properties”,Log4j在啟動(dòng)時(shí)會(huì)默認(rèn)尋找這個(gè)配置文件。如果你將配置文件放在其他地方,可以用上面注釋掉的代碼先加載指定的配置文件,支持絕對(duì)路徑和相對(duì)路徑。 還是直接運(yùn)行上面的代碼,控制臺(tái)輸出結(jié)果:

<2014-08-30 13:17:03> <main> test_slf4j.main(test_slf4j.java:17) <DEBUG> I'm debug log.<2014-08-30 13:17:03> <main> test_slf4j.main(test_slf4j.java:18) <INFO> I'm info log.<2014-08-30 13:17:03> <main> test_slf4j.main(test_slf4j.java:19) <WARN> I'm warn log.<2014-08-30 13:17:03> <main> test_slf4j.main(test_slf4j.java:20) <ERROR> I'm error log.

我配置的log4j.rootLogger = DEBUG,所以trace沒有被輸出。去查看兩個(gè)日志文件,也成功記錄了相應(yīng)的日志。

image


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 谢通门县| 手机| 莱西市| 增城市| 喜德县| 罗江县| 靖宇县| 左权县| 登封市| 常熟市| 句容市| 吉安县| 孝感市| 禹州市| 苏尼特左旗| 开封县| 勃利县| 平泉县| 瑞金市| 筠连县| 金华市| 额济纳旗| 宣武区| 阿坝| 古丈县| 云梦县| 乌拉特中旗| 察哈| 名山县| 兴国县| 县级市| 隆子县| 东乌珠穆沁旗| 冕宁县| 新宁县| 社会| 安溪县| 株洲市| 陈巴尔虎旗| 海城市| 青铜峡市|