生活随笔
收集整理的這篇文章主要介紹了
关于log4j
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
搭建完maven+SpringMVC以后,我們還需要添加日志功能,方便記錄應用在應用中產生的日志信息。
1、添加依賴包:依賴中除了對slf4j依賴外還有對郵件插件的依賴。當遇到報錯的時候可以發送郵件到我們指定的郵箱
?
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1</version> </dependency>
2、新建log4j.properties文件,必須在resources目錄下
?
?
3、log4j.properties內容
?
### set log levels ### log4j.rootLogger = INFO,DEBUG, console, infoFile, errorFile ,debugfile,mail LocationInfo=true log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.layout = org.apache.log4j.PatternLayout ## log4j.appender.console.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n log4j.appender.infoFile = org.apache.log4j.DailyRollingFileAppender log4j.appender.infoFile.Threshold = INFO log4j.appender.infoFile.File = D:/logs/log log4j.appender.infoFile.DatePattern = '.'yyyy-MM-dd'.log' log4j.appender.infoFile.Append=true log4j.appender.infoFile.layout = org.apache.log4j.PatternLayout log4j.appender.infoFile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n log4j.appender.errorFile = org.apache.log4j.DailyRollingFileAppender log4j.appender.errorFile.Threshold = ERROR log4j.appender.errorFile.File = D:/logs/error log4j.appender.errorFile.DatePattern = '.'yyyy-MM-dd'.log' log4j.appender.errorFile.Append=true log4j.appender.errorFile.layout = org.apache.log4j.PatternLayout log4j.appender.errorFile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n #log4j.appender.debugfile = org.apache.log4j.DailyRollingFileAppender #log4j.appender.debugfile.Threshold = DEBUG #log4j.appender.debugfile.File = D:/logs/debug #log4j.appender.debugfile.DatePattern = '.'yyyy-MM-dd'.log' #log4j.appender.debugfile.Append=true #log4j.appender.debugfile.layout = org.apache.log4j.PatternLayout #log4j.appender.debugfile.layout.ConversionPattern =[%d{yyyy-MM-dd HH:mm:ss,SSS}]-[%p]:%m %x %n ##mail log4j.appender.mail=org.apache.log4j.net.SMTPAppender log4j.appender.mail.Threshold=ERROR log4j.appender.mail.BufferSize=1 log4j.appender.mail.From =@qq.com log4j.appender.mail.SMTPHost=mail.qq.com log4j.appender.mail.Subject=Log4J Message log4j.appender.mail.To=xx.@qq.com log4j.appender.mail.SMTPUsername=123 log4j.appender.mail.SMTPPassword=123456 log4j.appender.mail.layout=org.apache.log4j.PatternLayout #log4j.appender.mail.layout=org.apache.log4j.PatternLayout log4j.appender.mail.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n
4、上面內容的解釋:
?
?
配置詳情解釋: ------------------------------------------------------------------------------------------------------ Appender 為日志輸出目的地,Log4j提供的appender有以下幾種: org.apache.log4j.ConsoleAppender(控制臺), org.apache.log4j.FileAppender(文件), org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件), org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件), org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方) Layout:日志輸出格式,Log4j提供的layout有以下幾種 org.apache.log4j.HTMLLayout(以HTML表格形式布局), org.apache.log4j.PatternLayout(可以靈活地指定布局模式), org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串), org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息) Log4J采用類似C語言中的printf函數的打印格式格式化日志信息: -X號: X信息輸出時左對齊; %p: 輸出日志信息優先級,即DEBUG,INFO,WARN,ERROR,FATAL, %d: 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921 %r: 輸出自應用啟動到輸出該log信息耗費的毫秒數 %c: 輸出日志信息所屬的類目,通常就是所在類的全名 %t: 輸出產生該日志事件的線程名 %l: 輸出日志事件的發生位置,相當于%C.%M(%F:%L)的組合,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main (TestLog4.java:10) %x: 輸出和當前線程相關聯的NDC(嵌套診斷環境),尤其用到像java servlets這樣的多客戶多線程的應用中。 %%: 輸出一個"%"字符 %F: 輸出日志消息產生時所在的文件名稱 %L: 輸出代碼中的行號 %m: 輸出代碼中指定的消息,產生的日志具體信息 %n: 輸出一個回車換行符,Windows平臺為"\r\n",Unix平臺為"\n"輸出日志信息換行 可以在%與模式字符之間加上修飾符來控制其最小寬度、最大寬度、和文本的對齊方式。如: 1)%20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小于20的話,默認的情況下右對齊。 2)%-20c:指定輸出category的名稱,最小的寬度是20,如果category的名稱小于20的話,"-"號指定左對齊。 3)%.30c:指定輸出category的名稱,最大的寬度是30,如果category的名稱大于30的話,就會將左邊多出的字符截掉,但小于30的話也不會有空格。 4)%20.30c:如果category的名稱小于20就補空格,并且右對齊,如果其名稱長于30字符,就從左邊較遠輸出的字符截掉。 --------------------------------------------------------------------------------------------------------- http://blog.csdn.net/qq_30175203/article/details/52084127 ---------------------------------------------------------------------------------------------------------
?
?
?
?
目前發送到郵箱這個有的還不能用,我自己本地測試公司郵箱是可以發送到自己公司郵箱,但是使用qq有限卻無法發送過去報鏈接失敗:查過原因:
一下是網上找的:但是我也不知道怎么去放開,試了好多遍都不行。
?
這個是網上查找的解決辦法,但是不知道咋搞,有明白的同學,請教各位了。。。
JavaMail無法連接SMTP25端口問題
測試JavaMail發郵件功能,始終發生錯誤: javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.com, port: 25 使用outlook收發郵件正常,使用telnet smtp.163.com 25不能連接 什么錯誤?很是莫名其妙! 從網上查資料,只有提問的沒有回答的,有些都問了若干年了沒有答案,真年頭技術都在干嘛啊? 廢話少說,問題查到了,是安裝的殺毒軟件進行了端口攔截,“禁止大量發送郵件的蠕蟲病毒發送郵件端口25”,outlook之所以能夠使用是因為outlook的進程被加到“已排除進程”中。反垃圾郵件功能阻止了javaw.exe和telenet.exe對port 25的訪問! 取消掉對javaw.exe、java.exe和telenet.exe的阻止,telnet成功,發送郵件成功!
轉載于:https://www.cnblogs.com/test_home_c/p/9413054.html
總結
以上是生活随笔為你收集整理的关于log4j的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。