Logback config : pattern for LoggingEventPatternJsonProvider



我正在尝试以编程方式添加LogstashUdpSocketAppender,但我无法创建具有工作模式的布局

private Layout<ILoggingEvent> getLayout() {
LoggingEventCompositeJsonLayout newLayout = new LoggingEventCompositeJsonLayout();
LoggingEventPatternJsonProvider patternProvider = new LoggingEventPatternJsonProvider();
patternProvider.setPattern("{ "field1":"value" , "message":"%message"}");
JsonProviders<ILoggingEvent> providers = new JsonProviders<ILoggingEvent>();        
providers.addProvider(patternProvider);
newLayout.setLineSeparator("SYSTEM");
newLayout.setProviders(providers);
return newLayout;
}

但这不起作用,它输出

{"field1":"value","message":"%PARSER_ERROR[message]"}

如果将相同的模式放在 XML 配置文件中,它可以正常工作。

知道吗?

https://github.com/logstash/logstash-logback-encoder/issues/388

在 LoggingEventPatternJsonProvider 模式上设置上下文 Provider 模式 Provider 解决了我的问题。

patternProvider.setContext(ContextSelectorStaticBinder.getSingleton().getContextSelector().getDefaultLoggerContext());

相关内容

  • 没有找到相关文章

最新更新