java日誌操作
阿新 • • 發佈:2019-01-24
一、Log4j的概念
Log4j中有三個主要的元件,它們分別是 Logger、Appender和Layout,Log4j 允許開發人員定義多個Logger,每個Logger擁有自己的名字,Logger之間通過名字來表明隸屬關係。有一個Logger稱為Root,它永遠存在,且不能通過名字檢索或引用,可以通過Logger.getRootLogger()方法獲得,其它Logger通過 Logger.getLogger(String name)方法。1) Appender則是用來指明將所有的log資訊存放到什麼地方,Log4j中支援多種appender,如 console、files、GUI components、NT Event Loggers等,一個Logger可以擁有多個Appender,也就是你既可以將Log資訊輸出到螢幕,同時儲存到一個檔案中。
輸出到控制檯:org.apache.log4j.ConsoleAppender
輸出到檔案:org.apache.log4j.FileAppender
2) Layout的作用是控制Log資訊的輸出方式,也就是格式化輸出的資訊。3) Log4j中將要輸出的Log資訊定義了5種級別,從低到高依次為DEBUG、INFO、WARN、ERROR和FATAL,當輸出時,只有級別高過配置中規定的級別的資訊才能真正的輸出,這樣就很方便的來配置不同情況下要輸出的內容,而不需要更改程式碼,這點實在是方便啊。
二、log4j.properties
三、載入配置# level : 是日誌記錄的優先順序,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。Log4j建議只使用四個級別,優先順序從高到低分別是ERROR、WARN、INFO、DEBUG。 log4j.rootLogger=DEBUG,CONSOLE,File log4j.addivity.org.apache=true # 應用於控制檯 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender # 本處設定為"INFO"以上級別在控制檯輸出(預設情況使用rootLogger中的設定) log4j.appender.CONSOLE.Threshold=INFO log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.Encoding=UTF-8 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[%t] %m%n # 每天新建日誌 log4j.appender.File=org.apache.log4j.FileAppender log4j.appender.File.File=./my.log log4j.appender.File.Encoding=utf-8 log4j.appender.File.Threshold=DEBUG log4j.appender.File.layout=org.apache.log4j.PatternLayout log4j.appender.File.layout.ConversionPattern=[%-5p] [%t] %d{yyyy-MM-dd HH:mm:ss:SSS} - %c %l %x - %m%n #郵件提醒Error log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender #日誌的錯誤級別 log4j.appender.MAIL.Threshold=ERROR #快取檔案大小,日誌達到2時傳送Email #log4j.appender.MAIL.BufferSize=2 #傳送郵件的伺服器 log4j.appender.MAIL.SMTPHost=smtp.126.com #郵件主題 log4j.appender.MAIL.Subject=ZhihuSpiderErrorMessage #傳送郵件箱的使用者 log4j.appender.MAIL.SMTPUsername= #傳送郵件箱的密碼 log4j.appender.MAIL.SMTPPassword= #傳送郵件箱 log4j.appender.MAIL.From= #接受郵件箱 log4j.appender.MAIL.To= #傳送郵件的格式 log4j.appender.MAIL.layout=org.apache.log4j.HTMLLayout
web.xml
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param>
注意:如果是javaproject檔案,其實這個是不用寫的,log4j架包會自動找到這個檔案並載入的
四、使用
package com.lei.test; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; public class Log4jTest { static Logger logger = null; static { PropertyConfigurator.configure("log4j.properties"); logger = Logger.getLogger(Log4jTest.class); } public static void main(String[] args) { logger.info("測試一下"); } }
看一下放的位置: