我有一个REST API,我想使用我的Logback Appender进行通信。 REST API本身由OAuth保护,因此任何请求都需要与OAuth令牌相关联。是否可以编写一个可以执行此操作的自定义appender。我对Logback非常陌生,不知道如何编写自定义appender。
例如,获取令牌的网址为http://example.com/obtain-token
,推送日志的API为http://example.com/addLogs
如果有人可以给我一个如何解决这个问题的虚拟代码,我真的很感激
答案 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。