【问题标题】:Logback adding appender at runtimeLogback 在运行时添加 appender
【发布时间】:2019-06-07 06:38:21
【问题描述】:

版本数据:

  • slf4j-api - 1.7.25
  • logback-core - 1.2.3
  • logback 经典 - 1.2.3

我正在测试一个非常简单的附加程序:

public class MyAppender extends AppenderBase<ILoggingEvent> {
  @Override
  protected String getName() {
    return "Test Instance";
  }

  @Override
  protected void append(ILoggingEvent event) {
    System.err.println("Hey, it worked!");
  }
}

当我这样做时它不会被调用:

Logger logger = (Logger) LoggerFactory.getLogger(MyTest.class);
logger.addAppender(new MyAppender());
Assert.assertNotNull(logger.getAppender("Test Instance"));
logger.info("Some message");

我的 logback-text.xml 看起来像这样:

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] - %msg%n</pattern>
    </encoder>
  </appender>
  <root level="INFO">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

在我的 appender 的初始化中我缺少什么吗?

【问题讨论】:

    标签: logback slf4j appender


    【解决方案1】:

    与往常一样,我一发布就立即回答。 对于其他人,您需要添加:

    MyAppender appender = new MyAppender();
    appender.start();
    

    【讨论】:

      猜你喜欢
      • 2022-09-23
      • 1970-01-01
      • 1970-01-01
      • 2017-05-23
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多