Добавить динамическое значение при написании сообщения журнала с log4js - PullRequest
0 голосов
/ 16 декабря 2018

Я хочу добавить динамический атрибут в шаблон, который я использую с log4js.Я использую некоторый пользовательский шаблон, что-то вроде этого: "% d {}% -6p [% thread]% c [% x {context}]:% m% n% r"

Контекст является динамическимзначение, которое я хочу установить с некоторым уникальным идентификатором, сгенерированным для каждого пользователя на стороне сервера.Существует способ добавить динамическое значение при создании конфигурации log4js, используя атрибуты "tokens" и "context".Но в этом случае значения должны быть установлены во время создания журнала.

Есть ли способ добавить некоторый динамический атрибут, который устанавливается, когда фактическое сообщение записывается в журнал, а не на этапе настройки?

Сейчас я делаю что-то вроде этого:

        log4js.configure(
        {
          appenders: { "file": { "type": "file", "filename": "service.log", "maxLogSize": 102400, "backups": 5,  "category": "com.nextinsurance",  "layout": { "type": "pattern", "pattern": "%d{} %-6p[%thread] %c [%x{context}]: %m%n%r",  "tokens" : {context: function(logEvent){ return getContextFromData(logEvent) } } } }, "console" : {"type": "console"} },
          categories: { "default": { "appenders": ["file", "console"], "level": "info" } }
        }
       );

Но хочу ввести это значение при записи в журнал, что-то вроде

logger.info(Message, {context: context_value})
...