Java Log4j记录器中的日志类和方法名称
我需要获得Log4j记录器的类和方法名。最好的方法是什么?另外,我还想为整个应用程序创建一个logger实例——在每个类中声明logger是非常无聊的。解决这些问题的方法是什么。实际上,为整个应用程序创建一个记录器根本不是一个好主意。很容易搞乱记录器、日志级别、配置等Java Log4j记录器中的日志类和方法名称,java,log4j,Java,Log4j,我需要获得Log4j记录器的类和方法名。最好的方法是什么?另外,我还想为整个应用程序创建一个logger实例——在每个类中声明logger是非常无聊的。解决这些问题的方法是什么。实际上,为整个应用程序创建一个记录器根本不是一个好主意。很容易搞乱记录器、日志级别、配置等 但是,如果您仍然需要它,可以在main方法中创建一个logger实例,并为每个类传递它(例如,在您使用的每个类中使用setLogger(),或者作为参数传递给类构造函数)。但同样,这样做100%是个坏主意。您可以在应用程序中使用%
但是,如果您仍然需要它,可以在main方法中创建一个logger实例,并为每个类传递它(例如,在您使用的每个类中使用setLogger(),或者作为参数传递给类构造函数)。但同样,这样做100%是个坏主意。您可以在应用程序中使用%C和%M占位符。请注意,出于性能原因,不建议使用它们 关于如何避免为每个类声明Logger,有几种方法。例如,如果创建公共基类是一个可行的选项,则可以声明一个受保护的最终记录器,如下所示:
abstract class Base {
protected final Logger logger = Logger.getLogger(getClass());
}
class Concrete extends Base {
public void testLogger() {
logger.info("It works!");
}
}
或者,您可以尝试使用依赖项注入框架注入记录器,例如