Дополнительный регистратор — log4j / slf4j / Spring / WildFly

#java #spring #log4j #wildfly #slf4j

#java #весна #log4j #wildfly #slf4j

Вопрос:

Я пытаюсь добавить дополнительный регистратор в приложение Spring, которое работает на сервере WildFly 14.0.1. Приложение уже использует slf4j log4j для ведения журнала. Я попытался добавить дополнительное дополнение в log4j.xml и периодический-вращающийся-обработчик файлов в standalone.xml но безуспешно. Похоже, что они перезаписаны каким-то другим файлом.

Вот log4j.xml:

<log4j:конфигурация xmlns:log4j=»http://jakarta.apache.org/log4j /»>

 <!-- Console Appender -->
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} [%-5p] (%F:%L) - %m%n"/>
    </layout>
</appender>

<!-- DailyRollingFile Appender -->
<appender name="DRFILE" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="Threshold" value="debug"/>
    <param name="File" value="./log/terminal.log"/>
    <param name="Append" value="true"/>
    <param name="DatePattern" value="'.'yyy-MM-dd"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd-MM-yyyy HH:mm:ss,SSS} [%-5p] (%F:%L) - %m%n"/>
    </layout>
</appender>

<appender name="DRCSVFILE" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="Threshold" value="debug"/>
    <param name="File" value="./log/requests.log"/>
    <param name="Append" value="true"/>
    <param name="DatePattern" value="'.'yyy-MM-dd"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{dd-MM-yyyy HH:mm:ss,SSS} [%-5p] (%F:%L) - %m%n"/>
    </layout>
</appender>

<logger name="com.terminal.spring.logging" >
    <level value="INFO"/>
    <appender-ref ref="DRCSVFILE" />
</logger>

<root>
    <priority value="INFO"/>
    <appender-ref ref="STDOUT"/>
    <appender-ref ref="DRFILE"/>
</root>
  

</log4j:конфигурация>

У WildFly standalone.xml фрагмент:

     <subsystem xmlns="urn:jboss:domain:logging:6.0">
        <console-handler name="CONSOLE">
            <level name="DEBUG"/>
            <formatter>
                <named-formatter name="CONSOLE-PATTERN"/>
            </formatter>
        </console-handler>
        <periodic-rotating-file-handler name="FILE" autoflush="true">
            <level name="DEBUG"/>
            <formatter>
                <named-formatter name="PATTERN"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="terminal.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>
        <periodic-rotating-file-handler name="CSVFILE" autoflush="true">
            <level name="DEBUG"/>
            <formatter>
                <named-formatter name="PATTERN"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="requests.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>
        <logger category="com.arjuna">
            <level name="WARN"/>
        </logger>
        <logger category="org.jboss.as.config">
            <level name="INFO"/>
        </logger>
        <logger category="com.terminal">
            <level name="${env.DEBUG_LEVEL:INFO}"/>
        </logger>
        <logger category="sun.rmi">
            <level name="WARN"/>
        </logger>
        <root-logger>
            <level name="INFO"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>
        <formatter name="PATTERN">
            <pattern-formatter pattern="%d{dd-MM-yyyy HH:mm:ss,SSS} [%-5p] (%F:%L) - %m%n"/>
        </formatter>
        <formatter name="CONSOLE-PATTERN">
            <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} [%-5p] (%F:%L) - %m%n"/>
        </formatter>
    </subsystem>
  

Однако terminal.log успешно создан, а requests.log — нет.

Кто-нибудь что-нибудь знает об этом?

Ответ №1:

Это дополнительное определение регистратора отсутствовало в standalone.xml файл:

 <logger category="com.terminal.spring.logging">
     <level name="DEBUG"/>
     <handlers>
          <handler name="CSVFILE"/>
     </handlers>
</logger>