CommonsRequestLoggingFilter не регистрируется с помощью конфигурации log4j2 в моем весеннем веб-реактивном приложении - PullRequest
0 голосов
/ 03 мая 2018

Может кто-нибудь, пожалуйста, помогите мне, если CommonsRequestLoggingFilter может быть использовано в весеннем веб-реактивном приложении с использованием log4j2? Я попытался настроить его, но он ничего не регистрирует. Пожалуйста, исправьте мое понимание, если это неправильно. Использует ли он общий доступ и не может быть использован с log4j2?

1 Ответ

0 голосов
/ 08 мая 2019

Причина, скорее всего, в том, что вы неправильно настроили фильтр. Как видно из названия, это фильтр. Поэтому вам, возможно, придется добавить что-то подобное в ваш файл web.xml:

<filter>
    <filter-name>requestLoggingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CommonsRequestLoggingFilter</filter-class>
    <init-param>
        <param-name>includeClientInfo</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>includePayload</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>includeQueryString</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
    <filter-mapping>
        <filter-name>requestLoggingFilter</filter-name>
        <url-pattern>*.html</url-pattern>
    </filter-mapping>

Вы также можете сделать это через WebInitializer и Java.

Это понадобится вам, если Spring Boot не запускает ваше приложение. Spring Boot сделает такую ​​конфигурацию для вас. Вот почему большинство примеров не показывают эту часть конфигурации.

В дополнение к этому, пожалуйста, не забудьте соответствующим образом настроить запись. Большинство примеров сделано с использованием Logback, но с современным Log4j это:

 <Logger name="org.springframework.web.filter.CommonsRequestLoggingFilter" level="debug" additivity="false">
     <AppenderRef ref="STDOUT"/>
 </Logger>
...