使用slf4j为每条记录的消息添加静态前缀

时间:2015-03-04 18:46:21

标签: java logging slf4j

当使用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...

}

如果需要某些上下文:我在一个核心应用程序上运行多个插件的环境中工作。在这样的插件中,我想添加插件的名称作为记录消息的前缀。

1 个答案:

答案 0 :(得分:0)

将您的调用换成另一个对传入的String执行String.format(...)的方法。您的格式化程序将具有您的静态字符串,并将日志记录字符串放在之前,之内或之后的某个位置,然后再将其传递给实际的记录器方法。