Используйте API ведения журнала, например, JB Nizet. Они довольно просты в использовании. Вот небольшой пример для ведения журнала с использованием Log4j от Apache (http://logging.apache.org/log4j), который очень популярен.
Все ваши классы будут иметь экземпляр регистратора готовый
private static final Logger log = Logger.getLogger(this.getClass());
Тогда в тех местах, где вы перехватывать исключения
catch (SQLException e) {
log.debug(e);
}
Затем просто настроить Log4j с помощью log4j.properties
в вашем classpath
log4j.appender.stdout.Target=System.out
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.rootLogger=debug, stdout
К включению регистрации затем так же просто, как изменение
log4j.rootLogger=warn, stdout
Что это означает, что вы заинтересованы только в операторах журнала, которые находятся на уровне предупреждения или выше (например, ошибки, или со смертельным исходом). Существует около шести уровней журнала: фатальный, ошибка, предупреждение, информация, отладка и трассировка. Когда вы устанавливаете уровень, все логические операторы, которые регистрируются на уровне ниже того, что вы указали, игнорируются.
Обратите внимание, что я упростил все выше. Рекомендуется использовать log4j.xml
вместо .properties
. Последние интерфейсы также позволяют получить некоторое представление с проверкой сделано перед входом
catch (SQLException e) {
if (log.isDebugEnabled()) log.debug(e);
}
Но, реальный пункт продажи с использованием структуры вместо того, чтобы просто проверяя Globals.DEBUG
флаг, прежде чем делать printStackTrace()
, что это на будущее. Скажите завтра, если вам нужно записывать вещи в файл, просто переключитесь с ConsoleAppender
на FileAppender
. Хотите получить электронное письмо на что-то fatal
, используйте SMTPAppender
только для этого прецедента. Другие appenders остаются настроенными так, как они есть.
У вас нет какого-либо класса, где вы храните глобальные переменные и пути к файлам конфигурации (не таким, как 'web.xml', но напрямую для использования в вашем приложении)? – Dworza
Используйте API регистрации, например slf4j, log4j или java.util.logging. Для этого они нужны. –