私はlogbackとSLF4JとUITを使用するために、Tomcatの(8.5.23)サーバーを持って、私が持っているはTomcatサーバーにlogback.xmlするSLF4Jロギングをバインドできません
- インストールlogback(1.2.3)
- インストールSLF4J(1.7.25)
- は
{catalina.base}/conf
- で
logback.xml
がlogback - によって提供番目eoneと
tomcat-juli.jar
はを指すように-Djuli-logback.configurationFile
を定義置き換え添加しました。
Tomcatコードは実際にlogbackをログに記録し、設定ファイルに従います。
私のサーブレットはslf4jを使用しています。ログの出力は表示されますが、logback.xmlファイルで定義されているフォーマットパターンと一致しません(デフォルトのようです)。レベル設定に準拠していません...実際、Tomcatのログ記録のように振る舞います私が-Djuli-logback.configurationFile
を追加する前に。
configがあります
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
<property name="max.retention.days" value="60" />
<appender name="CONSOLE" class="org.apache.juli.logging.ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level {%thread} [%logger{20}] : %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE-CATALINA" class="org.apache.juli.logging.ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.base}/logs/catalina.log</file>
<append>true</append>
<encoder>
<charset>utf-8</charset>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level {%thread} [%logger{40}] : %msg%n</pattern>
</encoder>
<rollingPolicy class="org.apache.juli.logging.ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${catalina.base}/logs/archive/catalina-%d{yyyyMMdd}-%i.log.zip</fileNamePattern>
<maxHistory>${max.retention.days}</maxHistory>
<cleanHistoryOnStart>true</cleanHistoryOnStart>
<maxFileSize>20MB</maxFileSize>
</rollingPolicy>
</appender>
<appender name="FILE-SERVLET" class="org.apache.juli.logging.ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.base}/logs/servlet.log</file>
<append>true</append>
<encoder>
<charset>utf-8</charset>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %logger{40} {%thread} %level : %msg%n</pattern>
</encoder>
<rollingPolicy class="org.apache.juli.logging.ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${catalina.base}/logs/archive/servlet-%d{yyyyMMdd}-%i.log.zip</fileNamePattern>
<maxHistory>${max.retention.days}</maxHistory>
<maxFileSize>20MB</maxFileSize>
</rollingPolicy>
</appender>
<logger name="com.mycompany" level="INFO" additivity="false">
<appender-ref ref="FILE-SERVLET" />
</logger>
<logger name="org.apache.catalina" level="INFO" additivity="false">
<appender-ref ref="FILE-CATALINA" />
</logger>
<logger name="org.apache.catalina.core.ContainerBase.[Catalina]" level="INFO" additivity="false">
<appender-ref ref="FILE-CATALINA" />
</logger>
<logger name="org.apache.catalina.core.ContainerBase.[Catalina].[/manager]" level="INFO"
additivity="false">
<appender-ref ref="FILE-CATALINA" />
</logger>
<logger name="org.apache.catalina.core.ContainerBase.[Catalina].[/host-manager]" level="INFO"
additivity="false">
<appender-ref ref="FILE-CATALINA" />
</logger>
<root level="INFO">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
Eclipseのコンソールがあります
2017-11-22 18:28:31.616 INFO {main} [o.a.c.h.Http11NioProtocol] : Starting ProtocolHandler ["http-nio-8080"]
2017-11-22 18:28:31.621 INFO {main} [o.a.c.a.AjpNioProtocol] : Starting ProtocolHandler ["ajp-nio-8009"]
18:28:37.591 [http-nio-8080-exec-2] DEBUG com.mycompany.otmxfer.OTMXferServlet - Entering doPost(/OTMXferServlet/OTMXfer): text/xml
18:28:37.599 [http-nio-8080-exec-2] DEBUG com.mycompany.otmxfer.OTMXferServlet - Received 1 lines
最初の2行はのTomcatからのものであると定義されたパターンに対応します。 次のものはサーブレットのslf4j呼び出しからのものです。
servlet.log
ファイルが作成されますが、空のままです。
私は-Dlogback.configurationFile
を設定しようとしましたが、そうするとエラーが発生します。 (ch.qos.logback.core.util.IncompatibleClassException)。
私は(他の、ファイルの欠落、ファイルの間違った場所?)何かが欠けする必要があります