Social Icons

.

среда, 16 марта 2016 г.

Отдельный файл логов в WildFly

Задача:
Необходимо часть логов EAR-проекта выводить не в общий файл, а в отдельный.


Решение:
1. В коде такие логи помечаются отдельной категорией, например mrMonro.

private static final Logger dump = Logger.getLogger("mrMonro");


2. В standalone.xml создается профиль для вывода строчек этой категории


       <subsystem xmlns="urn:jboss:domain:logging:3.0">
   ...
            <periodic-rotating-file-handler name="MRMONRO_FILE" autoflush="true">
                <formatter>
                    <named-formatter name="MRMONRO-PATTERN"/>
                </formatter>
                <file relative-to="jboss.server.log.dir" path="mr-monro.log"/>
                <suffix value=".yyyy-MM-dd"/>
                <append value="true"/>
            </periodic-rotating-file-handler>
   ...
            <logger category="mrMonro">
                <handlers>
                    <handler name="MRMONRO_FILE"/>
                </handlers>
            </logger>
   ...
            <formatter name="MRMONRO-PATTERN">
                <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] %s%e%n"/>
            </formatter>
        </subsystem>

3. Замечание. По умолчанию, установлено значение use-parent-handlers = "true". Это означает, что данные будут выводиться как во вновь созданный файл, так и в основной файл логов сервера (как правило server.log, конфигурация name="FILE"). Что бы избежать этого, атрибут надо принудительно сбросить.


   ...
            <logger category="mrMonro" use-parent-handlers="false">
                <handlers>
                    <handler name="MRMONRO_FILE"/>
                </handlers>
            </logger>
   ...


Комментариев нет:

Отправить комментарий

 

Так говорил Учитель:

У хорошо написанной программы есть свой собственный рай, у плохо написанной — свой собственный ад.

Russian Developer

Взгляд его светел, усилия праведны, старания бесплодны, дело безнадежно ...