Я довольно новый пользователь Log4J v. 1.2.15, так как мой друг убедил меня в преимуществах консоли или других формах ведения журнала. Однако, поскольку я делал некоторые тесты, я столкнулся с тестовым примером, который заставил меня задуматься. Вот это то, что я сделал:Log4J - как регистрировать исключение, пойманное в импортированной библиотеке?
- Я настроил свойство, добавил 2 appenders, а
ConsoleAppender
иRollingFileAppender
. - Я создал новый экземпляр журнала, используя мой основной класс:
Logger mainLogger = Logger.getLogger(Main.class);
У меня есть эта коллекция общего назначения, ручные, Java утилиты, в библиотеке, называется
MyUtils.jar
, добавляет к классам моего основного приложения. В основном приложении я вызвал статический метод отMyUtils.jar
. Этот метод имеет блок try-catch {}, и там обрабатывается исключение, печатая трассировку стека, используя System.err. Теперь, используя мою IDE иConsoleAppender
, я смог обнаружить проблему, однако событие не было зарегистрировано в моем журнале файлов. Есть 2 проблемы, которые нуждаются в ответах здесь: a. В настоящее время я использую мойmainLogger
для регистрации событий из всех классов моего приложения. Это хорошая практика? Или я должен использовать экземпляры X-регистратора для X-классов? b. Что я могу сделать, чтобы регистрировать ошибки, уже попавшие в мой импорт? Это может звучит банально, но я использовалObject foo = MyLibrary.composeObjectFoo()
, и внутри метода выглядит аналогично этому примеру:public static Object composeObjectFoo() { try { .....statements..... . . // something stupid here int a = 100/0; //an AritmethicException will be thrown } catch Exception(e) { e.printStackTrace(); } }
Спасибо за ваши ответы и, пожалуйста, извините длину этого ...
Предлагаю вам удалить этот ответ и добавить его в качестве комментария к вашему вопросу. – SingleShot
Я бы сделал это, если бы знал, где находится кнопка удаления здесь :-(. – 2009-10-01 22:27:30
У вас нет ссылки «link | edit | delete | flag» (да, ссылки, а не кнопки) ниже ответа? –