2つのlogback.xml
ファイルが別々のプロジェクトにあります。 1つはFileAppenderを使用してJDBC SQLをファイルに記録し、もう1つはConsoleAppenderを使用してエラーをstdoutに記録します。
以下にそれぞれのlogback.xmlファイルを示します。
ファイルロギング
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${user.home}/database.log</file>
<append>false</append>
<encoder>
<pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<logger name="jdbc" level="OFF" />
<logger name="jdbc.sqlonly" level="debug" />
<root level="info">
<appender-ref ref="FILE" />
</root>
</configuration>
コンソールロギング
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<logger name="jdbc" level="OFF" />
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>
これら2つのプロジェクトをマージし、情報レベルのSQLをファイルに、エラーをSTDOUTに記録し続けたいと考えています。
logback.xml
に2つのアペンダーを追加しましたが、新しいlogback.xml
のロガーとルートタグをどうするかはわかりません。
これを試して:
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${user.home}/database.log</file>
<append>false</append>
<encoder>
<pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<logger name="jdbc" level="OFF" />
<logger name="jdbc.sqlonly" level="INFO" additivity="false">
<appender-ref ref="FILE" />
</logger>
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</configuration>
fileおよびconsoleのビュー出力が必要な場合は、次のような2つのappender-refを使用します。
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${user.home}/database.log</file>
<append>false</append>
<encoder>
<pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-5relative %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<logger name="jdbc" level="OFF" />
<logger name="jdbc.sqlonly" level="INFO" additivity="false">
<appender-ref ref="FILE" />
</logger>
<root level="ERROR">
<appender-ref ref="STDOUT" /> <!-- Every log will apear on screen log -->
<appender-ref ref="FILE" /> <!-- Every log will apear on file -->
</root>
</configuration>