我有一个java项目(注意: – 它不是一个Web项目).我正在使用log4j来记录消息.
目前我要遵循的步骤如下:
>在项目级别创建了log4j.properties文件.
>声明Logger logger = Logger.getLogger(MyClass.class);
>然后使用 – >配置属性PropertyConfigurator.configure( “log4j.properties”);
>然后使用logger.debug(“message”);记录我的消息.
但我觉得这种方法的问题是我必须在我的项目的所有类中执行相同的操作,即从声明Logger记录器开始的所有步骤.
有没有办法让我可以在我的项目中只在一个地方配置我的记录器变量一次,然后只使用logger的声明变量来记录消息?
解决方法:
恕我直言你不应该有一个普通的记录器用于正常的记录目的.每个类都应该通过Logger logger = Logger.getLogger(MyClass.class);创建自己的记录器.当你有很少的类文件时,这似乎是一个开销,但最好这样做.通过遵循这种记录器模式,您可以灵活地在配置级别(在log4j.properties中)控制任何级别(整个应用程序或任何包或任何类)的日志记录级别.
您可以在类路径中提供log4j.properties,log4j将自动选择它.PropertyConfigurator.configure(“log4j.properties”);不需要.
如果你想这样做,你可以创建自己的记录器类MyLogger,使用静态方法进行记录,将实际调用包装到记录器.然后,从您的各个类中,您可以调用MyLogger.log()或MyLogger.debug()来记录.
标签:java,log4j
来源: https://codeday.me/bug/20190625/1286557.html