繁体   English   中英

在logback中创建后备附加程序?

[英]Create a fallback appender in logback?

万一附加程序无法记录消息,我想捕获日志并改用“后备附加程序”。 那可能吗?

这样的事情(我知道STDOUT不会失败)

<appender name="APPENDER" class="ch.qos.logback.core.FooAppender">
          <!-- whatever -->
</appender>

<appender name="FALLBACK_APPENDER" class="...FallbackAppender">
         <failingAppender>APPENDER</failingAppender>
</appender>

进行此工作的粗鲁方式如下。

假设您的附加程序位于com.kp.logback包中。

您具有自定义附加程序,该附加程序会进行一些处理并登录一些文件/数据库。 在执行该操作时失败了。 您可以记录以下消息。

public class KPAppender extends UnsynchronizedAppenderBase<ILoggingEvent>{

private static final Logger LOG = LoggerFactory.getLogger(KPAppender.class);

@Override
protected void append(ILoggingEvent eventObject) {

//try something here to process message
  if fails catch block Log message 

    if(eventObject.getLevel()== Level.DEBUG){
        LOG.debug(eventObject.getMessage());
    }

}

}

如下所示,使用loback.xml配置创建另一个Fallback追加程序。

    <appender name="FALLBACK_APPENDER" class="...FallbackAppender">

    </appender>

<logger name="com.kp.logback">
        <level value="trace" />
        <appender-ref ref="FALLBACK_APPENDER" />
    </logger>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM