当使用slf4j 而不使用更改底层日志框架的格式时,是否有办法为所有已记录的消息添加静态(非上下文动态)前缀?需要明确的是,这意味着使用MDC不是一种选择,因为这需要反映在底层框架的格式配置中。
除了为slf4j记录器创建自定义包装器并在任何我通常只是初始化slf4j记录器的地方使用它时,还有其他选择吗?
public class CustomLogger {
private final String prefix = "custom-prefix";
private final Logger logger;
public CustomLogger(Class clazz) {
logger = LoggerFactory.getLogger(clazz);
}
public void info(String info) {
logger.info (prefix + info);
}
// other methods...
}
如果需要某些上下文:我在一个核心应用程序上运行多个插件的环境中工作。在这样的插件中,我想添加插件的名称作为记录消息的前缀。
答案 0 :(得分:0)
将您的调用换成另一个对传入的String执行String.format(...)的方法。您的格式化程序将具有您的静态字符串,并将日志记录字符串放在之前,之内或之后的某个位置,然后再将其传递给实际的记录器方法。