代码之家  ›  专栏  ›  技术社区  ›  jonny

使用logback仅显示来自一个类的日志

  •  12
  • jonny  · 技术社区  · 7 年前

    我试图将日志显示到控制台以及文件中,但在文件中,我只希望显示来自某个特定类的某些日志,我不知道如何做到这一点。下面是我的日志。xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE configuration>
    
    <configuration>
    
      <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <pattern>{ "date_time":"%date", "thread":"[%thread]", "log_level":"%-5level", "class_name":"%logger{0}", "log_message":"%msg" }%n</pattern>
            </encoder>
        </appender>
    
      <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file> test.txt </file>
        <append>false</append>
        <encoder>
            <pattern>{ "date_time":"%date", "thread":"[%thread]", "log_level":"%-5level", "class_name":"%logger{0}", "log_message":"%msg" }%n</pattern>
        </encoder>
      </appender>
    
      <root level="info">
        <appender-ref ref="FILE" />
        <appender-ref ref="STDOUT" />
      </root>
    
    </configuration>
    
    1 回复  |  直到 7 年前
        1
  •  16
  •   glytching    7 年前

    只需声明 logger 然后将该记录器与您的 FILE

    例如:

    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>test.log</file>
        <encoder>
            <pattern>{ "date_time":"%date", "thread":"[%thread]", "log_level":"%-5level", "class_name":"%logger{0}", "log_message":"%msg" }%n</pattern>
        </encoder>
    </appender>
    
    <logger name="your.particular.Class">
        <appender-ref ref="FILE" />
    </logger>
    
    <root level="info">
        <appender-ref ref="STDOUT" />
    </root>
    

    这将确保 your.particular.Class 指向 文件 appender和所有其他日志将被定向 STDOUT 附录。