我在单独的项目中有2个logback.xml
个文件。一个使用FileAppender将JDBC SQL记录到文件中,另一个使用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>
我正在合并这两个项目,我希望能够继续将信息级SQL记录到文件中,并将错误记录到STDOUT。
我已将两个appender添加到logback.xml
,但我不知道如何处理记录器以及新logback.xml
中的根标记。
答案 0 :(得分:28)
试试这个:
<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>
答案 1 :(得分:12)
如果您想在文件和控制台中查看输出,请使用以下两个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>