Tomcat6: Какой самый простой способ настройки java.util.logging? - PullRequest
0 голосов
/ 09 июня 2011

Я работаю над сервлетом, который время от времени должен регистрировать несколько вещей. Тем не менее, я не уверен, как мне все настроить.

Моя первая попытка запустить систему состояла в том, чтобы создать файл logging.properties, а затем прочитать конфигурацию регистрации, используя приведенный ниже фрагмент кода.

LogManager.getLogManager().readConfiguration(this.getClass().getResourceAsStream("/logging.properties"));

Это работает довольно хорошо, но не все, кажется, работает на 100% (я действительно не могу понять, что это такое, поскольку некоторые вещи работают, а другие нет).

Однако я не уверен, что это делает. Переопределяет ли он все настройки из свойств logging.properties по умолчанию, предоставляемых tomcat, или добавляет к свойствам, предоставляемым tomcat?

1 Ответ

1 голос
/ 10 сентября 2011

В случае, если кто-то еще найдет этот вопрос в своем поиске учебника, объясняющего, как настроить ведение журнала tomcat6, я опубликую краткое объяснение того, как у меня все работает.

Прежде всего, даже если вы знаете, что будете использовать java.util.logging, я все равно скажу, что это хорошая идея - использовать slf4j. Библиотека slf4j - это не что иное, как фасад регистрации, который просто перенаправляет все записи в java.util.logging. Однако, если по какой-то причине вы решите позднее использовать log4j или обычную регистрацию, это будет сделано через 2 минуты. Slf4j позволяет вам указать, какую среду ведения журналов использовать, и просто перенаправляет запись в эту среду.

Я решил использовать slf4j, а затем передать все записи в java.util.logging. Просто добавьте файлы jar «slf4j-api» и «slf4j-jdk14» в ваш проект, и все готово. Вам не нужно ничего делать, чтобы инициализировать каркас ведения журнала в вашем приложении. Тем не менее, вам необходимо создать файл свойств, который содержит подробную информацию о формате ведения журнала, какой файл для входа и тому подобное. Этот файл используется java.util.logging, а не slf4j, поскольку slf4j просто перенаправляет все события журнала в java.util.logging. Создайте файл WEB-INF \ classes \ logging.properties и вставьте в этот файл следующий код:

handlers = 1yourapplication.org.apache.juli.FileHandler

com.yourpplication.level = ALL
com.yourapplication.handlers = 1yourapplication.org.apache.juli.FileHandler

1yourapplication.org.apache.juli.FileHandler.level = WARNING
1yourapplication.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1yourapplication.org.apache.juli.FileHandler.prefix = yourapplication.
1yourapplication.org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
1yourapplication.org.apache.juli.FileHandler.bufferSize = -1

Вот и все. Будет создан файл 'yourapplication-YYYY-MM-DD.log' (где YYYY-MM-DD будет заменен текущей датой), и журналы будут записаны в этот файл. Новый файл журнала будет создаваться каждую полночь.

Теперь, чтобы что-то записать в этот файл, вы просто вызываете следующий код:

LoggerFactory.getLogger(getClass()).info("This is a logging test!");

Теперь вы входите в файл журнала приложений.

...