首页 > 解决方案 > JsonFormatter 日志记录 (Quarkus) 上的自定义键值

问题描述

我想知道是否有任何方法可以使用库 org.jboss.logging.Logger 创建我的自定义键值 json 日志记录。我有这个方法:

void onStart(@Observes StartupEvent ev) {               
    ArrayList<Handler> handlers = new ArrayList(2);
    Formatter formatter = new JsonFormatter();
    ConsoleHandler handler = new ConsoleHandler(formatter);
    handler.setLevel(Level.INFO);
    handlers.add(handler);
    InitialConfigurator.DELAYED_HANDLER.setHandlers((Handler[]) handlers.toArray(EmbeddedConfigurator.NO_HANDLERS));
    LOGGER.info("The application is starting...");
}

那打印:

{
  "timestamp": "2020-10-25T12:49:35.948+01:00",
  "sequence": 2346,
  "loggerClassName": "org.jboss.logging.Logger",
  "loggerName": "ListenerBean",
  "level": "INFO",
  "message": "The application is starting...",
  "threadName": "Quarkus Main Thread",
  "threadId": 75,
  "mdc": {
    
  },
  "ndc": "",
  "hostName": "les007817",
  "processName": "callmenow-dev.jar",
  "processId": 466416
}

我需要在此日志中再添加两个键值(“键:”值“)。我怎样才能做到这一点。

(我正在使用Quarkus。我知道有库可以做到这一点,但我需要手动方式)

谢谢。

标签: javajsonloggingquarkus

解决方案


由于您使用的是 Quarkus,您可以使用 Quarkiverse Logging Json 扩展:https ://github.com/quarkiverse/quarkiverse-logging-json 。它为此提供了支持。


推荐阅读