У меня есть автономное приложение Java. Приложение использует пару библиотек и управляется плагином maven и 'shade' для создания одного большого банкета со всеми зависимостями. У меня возникла проблема с протоколированием исключенных исключений в файл (приложение запускается в 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
В настоящее время я обошел эту проблему с помощью консоли Appender и запуска приложения с помощью:
java -jar -Dlog4j.configuration=file:log4j.properties myApp.jar >> logs/my-app.log 2>&1
... но я бы действительно хотел использовать скопированный файл appender.
Я знаю это. Исключение выбрасывается из третьей стороны lib. – szymon
попробуйте поймать звонки в lib? Таким образом, исключение не проходит полностью – Julien