替换日志消息中的参数并在 Log4j 2 中添加可抛出
我正在尝试记录异常,并希望在日志消息中包含另一个变量的值。是否有记录器 API 可以执行此操作?
logger.error("Logging in user {} with birthday {}", user.getName(), user.getBirthdayCalendar(), exception);
我正在尝试记录异常,并希望在日志消息中包含另一个变量的值。是否有记录器 API 可以执行此操作?
logger.error("Logging in user {} with birthday {}", user.getName(), user.getBirthdayCalendar(), exception);
Log4j 2(和SLF4J 1.6+)中有一个未记录的功能。可以作为最后一个参数传递。然后它会得到特殊的待遇。请参阅 AbstractLogger#logMessage(String, Level, Marker, String, Object...)
和 ReusableParameterizedMessage#initThrowable()。
)。Throwable
无需打扰 。问题中的代码将按预期工作:ParametrizedMessage
logger.error("Logging in user {} with birthday {}", user.getName(), user.getBirthdayCalendar(), exception);
你有没有试过查看参数化消息?
从文档
参数:
messagePattern - 消息“format”字符串。这将是一个包含“{}”占位符的字符串,其中应替换参数。
objectArgs - 替换的参数。
可投掷 - 可投掷
例如:
logger.error(new ParameterizedMessage("Logging in user {} with birthday {}", user.getName(), user.getBirthdayCalendar()), exception);