log4j不輸出日誌錯誤分析
1.rootLogger不輸出
程式碼如下:
配置檔案程式碼:
log4j.rootLogger=info, R,userLog
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=E:/createHtml.log
log4j.appender.R.MaxFileSize=100MB
log4j.appender.R.MaxBackupIndex=20
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%p] %c - %m%n
log4j.appender.userLog=org.apache.log4j.ConsoleAppender
log4j.appender.userLog.Target=System.out
log4j.appender.userLog.layout=org.apache.log4j.PatternLayout
log4j.appender.userLog.layout.ConversionPattern=%m%n
類中程式碼:
private final static Log log = LogFactory.getLog("userInfoLog");
log.debug(“輸出日誌====”);
錯誤:設定好的日誌,檔案中沒有輸出,控制檯也沒有輸出
原因:level級別問題;配置檔案中設定的級別是info;而在類中輸出使用的是debug;log4j的level級別為:debugàinfoàwarnàerror;
解決:配置級別高,輸出級別低則不會輸出,如果反過來就會輸出;比如:配置檔案改為debug,輸出使用log.debug或者log.info或者更高階別都可以。
2.自定義的日誌不輸出
程式碼如下:
配置檔案程式碼:
log4j.appender.createExcel=info,excel
log4j.appender.excel=org.apache.log4j.FileAppender
log4j.appender.excel.File=E:/createExcel.log
log4j.appender.excel.Append=true
log4j.appender.excel.Threshold=info
log4j.appender.excel.layout=org.apache.log4j.PatternLayout
log4j.appender.excel.layout.ConversionPattern=%m%n
log4j.additivity.createExcel = false
類中程式碼:
private final static Log log = LogFactory.getLog("createExcel ");
log.debug(“輸出日誌====”);
錯誤:使用自定義的名稱createExcel不輸出日誌
原因:配置檔案中的紅色程式碼處有錯誤,這種錯誤很容易在配置檔案中有很多日誌檔案的時候,複製上面的出錯;
解決:log4j.logger.createExcel=info,excel;Logger:負責供客戶端程式碼呼叫,執行debug、info等方法。 Appender:負責日誌的輸出,Log4j已經實現了多種不同目標的輸出方式,可以向檔案輸出日誌、向控制檯輸出日誌、向Socket輸出日誌等。紅色部分錯誤的將logger寫成了appender;新新增一個自定義的日誌的時候必須要是有log4j.logger類。
擴充套件:自定義日誌的時候還容易出錯的地方是:你配置檔案中使用自定義名稱與類中使用的不一致,這裡配置檔案中的log4j. appender.createExcel要與類中LogFactory.getLog("createExcel ");一致,否則也會導致不輸出日誌。
3. 自定義日誌使用類名不輸出
程式碼如下:
配置檔案程式碼:
log4j.logger.performanceLogger=INFO,performanceLogger
log4j.appender.performanceLogger=org.apache.log4j.DailyRollingFileAppender log4j.appender.performanceLogger.File=/application/resinlog/cmslog/common-perf.log
log4j.appender.excel.layout=org.apache.log4j.PatternLayout
log4j.appender.excel.layout.ConversionPattern=%m%n
log4j.additivity.createExcel = false
類中程式碼:
private final static Log log = LogFactory.getLog (PerformanceMonitorFilter.class);
log.debug(“輸出日誌====”);
錯誤:指定的日誌檔案中沒有輸出日誌,也沒有報錯
原因:配置檔案中使用了自定義名稱的方式,但是類中呼叫日誌檔案的時候卻使用的類名
解決:如果類是個jar包,不容許修改的,那麼就把配置檔案改了;具體如下: log4j.logger.com.hudong.keel.web.filter.PerformanceMonitorFilter=INFO,performanceLogger
log4j.appender.performanceLogger=org.apache.log4j.DailyRollingFileAppender
如果類可以改,那也可以不改配置檔案直接該類,如下:
private final static Log log = LogFactory.getLog (“performanceLogger”);
擴充套件:如果你不想在rootLogger指定的檔案下輸出內容,只想在你知道的自定義檔案下輸出你的日誌,那麼你可以把輸出開關改為false,預設的是true;如果你不該那麼就會在跟日誌和你自定義的日誌都輸出日誌;開關如下:
log4j.additivity.createExcel = false
4.如果配置好檔案之後再控制檯輸出一些紅色警告,那麼證明你配置的log4j檔案有錯誤;檢查一下你的配置檔案,具體配置檔案的使用間部落格其他有關log4j使用的文章。
相關文章
- 排查log4j不輸出日誌到檔案的問題
- log4j日誌輸出級別(轉)
- Hibernate 使用log4j輸出日誌
- net 日誌分析錯誤
- 使用Log4j輸出日誌至資料庫資料庫
- 華為 MATE7 除錯 LOCAT 日誌不輸出問題除錯
- 24【線上日誌分析】之Tomcat的支援log4j,日誌輸出為json格式TomcatJSON
- mysql 日誌之錯誤日誌MySql
- 排查錯誤日誌
- mysql慢查詢和錯誤日誌分析MySql
- log4j將日誌輸出到資料庫資料庫
- Apche日誌系列(2):錯誤日誌(轉)
- alert日誌中的兩種ORA錯誤分析
- Mabatis配置錯誤日誌BAT
- 日誌查詢錯誤
- 錯誤日誌檢視
- SQL Server 錯誤日誌SQLServer
- reportbuilder 日誌輸出UI
- Python輸出日誌Python
- Spring Boot mybatis-config 和 log4j 輸出sql 日誌Spring BootMyBatisSQL
- nohup不輸出nohup.out日誌資訊,已解決。
- 如何用NodeJS讀取分析Nginx錯誤日誌NodeJSNginx
- 記一次log4j日誌寫到錯誤檔案的問題
- MySQL 狂寫錯誤日誌MySql
- jdon框架日誌資訊錯誤框架
- python如何輸出日誌?Python
- Java日誌輸出問題Java
- awk多行日誌排序輸出排序
- C++簡單日誌/debug除錯資訊輸出C++除錯
- JVM致命錯誤日誌(hs_err_pid.log)分析JVM
- 告警日誌出現skgpspawn failed category 27142錯誤AIGo
- SAP 錯誤日誌的調查
- node錯誤處理與日誌
- 上一個日誌的錯誤
- Sqlserver:代理錯誤日誌,知多少?SQLServer
- SQL Server ErrorLog 錯誤日誌SQLServerError
- aix ip 衝突錯誤日誌AI
- oracle日誌錯誤恢復(轉)Oracle