我必须根据所使用的服务记录到单独的日志文件。因此,假设我有 service1 和 service2,并且日志将分别转到 service1.log 和 service2.log。
问题是这两个服务都使用了一些通用代码。现在我如何制作日志,以便如果任何服务调用公共代码然后登录到该特定日志文件。
我创建记录器的方式是
private static final Logger logger = Logger.getLogger(ClassName.class);
我想处理这个问题的方法是将一个字符串(记录器名称)传递给公共代码并在方法级别而不是类创建记录器。
例子:
someMethodInCommonCode(String loggerName) {
Logger logger = Logger.getLogger(loggerName);
}
我读过 log4j 维护记录器的缓存,所以我猜在方法中创建记录器不会是开销。
是的,我不喜欢记录器名称被传递。那么有没有一种方法或任何配置可以实现上述场景或任何其他想法。