Про то, как настроить Log4j, myapplication.properties и запускающий Ant скрип в сервере приложений Orion.

В этой статье Вы можете узнать о том, как настроить модуль отладки Log4j на сервере приложений Orion и подключить файл конфигурации Log4j к своему приложению. Посмотреть, как можно использовать и подключить файл настроек myapplication.properties. Приведен пример запускающего сервер Orion сценария. Статья включает в себя фрагменты исходного кода. Тестовое приложение и все необходимые настройки и библиотеки доступны для скачивания.

Постановка задачи

Имеется сервер приложений Orion и готовое приложение, которое использует в качестве отладочного модуля Log4j. В этой статье мы покажем один из способов настройки Log4j при развертывании приложения на сервере Orion. В результате наших манипуляций приложение будет писать лог туда, куда надо нам, с заданным уровнем логирования и параметрами, из пользовательского файла log4j.properties.

Описание настройки log4j.properties нашего приложения

Наше приложение использует пакет Log4j в качестве модуля отладки. Не будем много писать о пользе сохранения отладочной информации. В качестве готового решения для этого рекомендуем Log4j. Если Вы еще не определились для себя с таковым — прекрасный шанс познакомиться. Подробная документация по Log4j есть на сайте проекта. Мы всего лишь расскажем что и как использовали в своем проекте. Представляем Log4l.properties файл с комментариями:

 # Максимальный уровень логируемого события для всего приложения:
 log4j.rootCategory=FATAL

 #Консольный аппендер по умолчанию.
 #Его имя как видим ConsoleLog. 
 #Для того чтобы его подключить к другому аппендеру
 #надо просто добавить его имя через запятую 
 #в конце строки log4j.category.*
 #как это сделано ниже в ApplicationWorker
 log4j.appender.ConsoleLog=org.apache.log4j.ConsoleAppender
 log4j.appender.ConsoleLog.layout=org.apache.log4j.PatternLayout
 log4j.appender.ConsoleLog.layout.ConversionPattern=%d %-5p - %m%n
 log4j.appender.ConsoleLog.Threshold=DEBUG

 #Аппендер для файла ApplicationWorker
 #ApplicationWorkerLog - название аппендера, 
 #ConsoleLog - означает лишь то, что этот аппендер кроме своего
 #лог файла будет писать все в консоль
 log4j.category.my.ejb.bean.ApplicationWorker = ApplicationWorkerLog, ConsoleLog
 log4j.appender. ApplicationWorkerLog = org.apache.log4j.DailyRollingFileAppender
 log4j.appender. ApplicationWorkerLog.DatePattern=.yyyy-MM-dd
 #Путь к файлу в системе.
 log4j.appender. ApplicationWorkerLog.File = ./log/ConsoleMergerWeb.log
 log4j.appender. ApplicationWorkerLog.layout = org.apache.log4j.PatternLayout
 #Настройка префикса к логу. Делайте как удобнее.
 log4j.appender. ApplicationWorkerLog.layout.ConversionPattern = %-5p [%d{dd-MM-yyyy HH:mm:ss.SSS}] %C{1}[%t]: %m%n
 # Уровень логирования. 
 #Мы отлаживаем приложение — стоит Dubug.
 # При постановке на боевое дежурство — 
 #не забудьте переключить на ERROR или отключить(самоуверенно).
 log4j.appender. ApplicationWorkerLog.Threshold=DEBUG
 # При такой записи, при старте 
 #приложения лог будет очищаться автоматически
 # Иногда это полезно, иногда очень вредно.
 log4j.appender. ApplicationWorkerLog.Append=false

 #Аппендер для файла ApplicationWorker
 #Тут мы не прописываем класс, а вызовем аппендер по имени: 
 #Logger applicationServletMyLog = 
 #Logger.getLogger("ApplicationServletMyLog")

 log4j.category.ApplicationServletMyLog = TRACE,ApplicationServletLog
 log4j.appender.ApplicationServletLog = org.apache.log4j.DailyRollingFileAppender
 log4j.appender.ApplicationServletLog.DatePattern=.yyyy-MM-dd
 log4j.appender.ApplicationServletLog.File = ./log/ ApplicationServlet.log
 log4j.appender.ApplicationServletLog.layout = org.apache.log4j.PatternLayout
 #  расшифровка паттерна
 # %-5p — приоритет логирования
 # [%t] — имя процесса вызвавшего событие
 # %C{1} — имя класса вызвавшего событие
 # %m%n — Само сообщение плюс платформозависимый перенос строки
 # Формат даты [%d{dd-MM-yyyy HH:mm:ss.SSS}]
 log4j.appender.ApplicationServletLog.layout.ConversionPattern=%-5p [%d{dd-MM-yyyy HH:mm:ss.SSS}] %C{1}[%t]: %m%n
 log4j.appender.ApplicationServletLog.Threshold=DEBUG
 log4j.appender.ApplicationServletLog.Append=false

Мы подключаем логгер в проект очень просто.

 public static Logger logger = Logger.getLogger(ApplicationWorker.class);
 //Либо
 public static Logger logger = Logger.getLogger("ApplicationServletMyLog");

После создания логгера мы можем использовать его для отладки кода нашего класса. Позволим себе напомнить основные методы:

 logger.trace("trace message");
 logger.debug("debug message");
 logger.info("info message");
 logger.warn("warn message");
 logger.error("error message");
 logger.fatal("fatal message");

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

Настройка редактора Eclipse

Мы писали код приложения в редакторе Eclipse. Для того чтобы мы могли использовать наш log4j.properties всего лишь пропишем его в аргументы виртуальной машины. На скриншоте видно как это сделать.

Если Вы используете другой редактор — скорее в нем так же существуют подобные настройки. Как использовать это в консоли — догадайтесь сами.

 -Dorg.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JCategoryLog 
 -Dlog4j.configuration = file:с:/MyApplication/my.log4j.properties

Итак мы написали код приложения и желаем развернуть его на сервере. У нас есть сервлет и JMS bean. Мы создали ear архив(о том как это сделать при помощи несложного ant скрипта можно прочитать здесь) Положили архив в папку orion/application, положили наш log4j.properties в папку orion/config и желаем запустить приложение чтобы насладиться чтением логов с сообщениями об успешном выполнении работы. Для этого создадим скрипт запуска сервера. Укажем ему где брать файл настройки Log4j.

 @echo off
 set PATH=C:\jdk5
 c:
 cd c:\orion
 echo Starting the Orion...
 "%PATH%/bin/java" -Xms120M -Xmx1024M -Dlog4j.configuration = 
 file:c:/orion/config/my.log4j.properties 
 -classpath d:/o -jar orion.jar

Запускаем Orion. Всю отладочную информацию найдем в папке orion/log/. Если Вам необходимо изменить уровень логирования или внести любое другое изменение в файл настройки log4j, не забудьте перезапустить Orion.

Страница:

  • 1

  • 2