【问题标题】:file and stdout appenders in logback.xmllogback.xml 中的文件和标准输出附加程序
【发布时间】:2013-02-28 16:43:18
【问题描述】:

我在不同的项目中有 2 个logback.xml 文件。一个使用 FileAppender 将 JDBC SQL 记录到文件,另一个使用 ConsoleAppender 将错误记录到标准输出。

这是我的每个 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。

我已将两个附加程序添加到 logback.xml,但我不确定如何处理我的新 logback.xml 中的记录器和根标签。

【问题讨论】:

    标签: java maven log4j logback


    【解决方案1】:

    试试这个:

        <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>
    

    【讨论】:

      【解决方案2】:

      如果您想在 fileconsole 中查看输出,请使用两个 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>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-22
        • 1970-01-01
        • 2020-03-04
        • 2013-02-16
        • 2014-11-22
        • 2010-10-26
        • 2021-02-22
        • 1970-01-01
        相关资源
        最近更新 更多