我有一個獨立的java應用程序。應用程序使用了兩個庫,它由maven和'shade'插件管理,以創建具有所有依賴關係的一個大型jar文件。將未捕獲的異常記錄到文件中有問題(應用程序在Linux上運行)。我配置了log4j.properties並添加了滾動文件appender。它正在工作,但每當拋出異常時,它都會打印在控制檯上,而不是在配置的日誌文件中。基本上,我以所有INFO +條目的日誌文件結束,但沒有例外(未捕獲)。Java獨立應用程序日誌記錄異常(log4j)
這裏是log4j.properties:
# Root logger option
log4j.rootLogger=INFO, file
# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/my-app.log
log4j.appender.file.MaxFileSize=100MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
我使用的是運行應用程序:
java -jar -Dlog4j.configuration=file:log4j.properties myApp.jar >> logs/my-app.log 2>&1
:
java -jar -Dlog4j.configuration=file:log4j.properties myApp.jar
目前我使用控制檯的appender和運行的應用程序使用繞過問題...但我真的想使用滾動文件appender。
我知道這一點。異常是從第三方庫引發的。 – szymon 2013-02-20 09:36:07
嘗試捕獲對lib的調用?因此,這個例外不會一直持續下去 – Julien 2013-02-20 09:56:54