为Logback创建Web Service Appender

时间:2016-12-22 04:27:42

标签: java spring rest logback appender

我有一个REST API,我想使用我的Logback Appender进行通信。 REST API本身由OAuth保护,因此任何请求都需要与OAuth令牌相关联。是否可以编写一个可以执行此操作的自定义appender。我对Logback非常陌生,不知道如何编写自定义appender。

例如,获取令牌的网址为http://example.com/obtain-token,推送日志的API为http://example.com/addLogs

如果有人可以给我一个如何解决这个问题的虚拟代码,我真的很感激

1 个答案:

答案 0 :(得分:0)

Logback具有server appender的实现,你可以这样做:

    LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
    SocketAppender appender = new SocketAppender();
    appender.setName("MyServer");
    appender.setContext(context);
    appender.setRemoteHost("some host");
    appender.setPort(82323);

    appender.start();

    // Wrap the appender in an Async appender for performance
    AsyncAppender asyncAppender = new AsyncAppender();
    asyncAppender.setContext(context);
    asyncAppender.setName("ASYNC_SERVER");
    asyncAppender.setQueueSize(500);
    asyncAppender.addAppender(appender);
    asyncAppender.start();

    context.getLogger("ROOT").addAppender(asyncAppender);

请注意,Logger和其他一些类都在ch.qos.logback.classic包中。您可以详细查看关于appender的document