java如何将log4j Logger对象正确实例化到我的类中?
我正在使用一个简单的Java命令行,我需要在我的应用程序中插入log4j,因此我遵循本教程:
http://veerasundar.com/blog/2009/07/log4j-tutorial-adding-log4j-logging-to-your-project/
因此,我完成了以下步骤:
我将log4jjar文件放入我的项目库中
我把log4j放进去了。属性转换为配置包,我使用以下最低配置对其进行了配置:
#define the console appender log4j.appender.consoleAppender = org.apache.log4j.ConsoleAppender # now define the layout for the appender log4j.appender.consoleAppender.layout = org.apache.log4j.PatternLayout log4j.appender.consoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n # now map our console appender as a root logger, means all log messages will go to this appender log4j.rootLogger = DEBUG, consoleAppender
因此,这个配置意味着输出必须打印到控制台中,我将调试模式与之关联
现在,教程说:
In any of your Java file, add the below lines, in order to start logging.
并显示以下示例代码:
private static Logger logger = Logger.getLogger(MyclassName.class); logger.debug("this is a sample log message.");
好吧,我还不明白要将
Logger
实例化到我的类中需要做什么我的班级名为
Mailer
,所以我必须做一些类似的事情:private static Logger logger = Logger.getLogger(Mailer.class);
还是什么?我到底要做什么
编辑1:我的课程是这样的:
public class Mailer {
private static final org.apache.log4j.Logger logger = new Logger(Mailer.class);
...................................
...................................
...................................
}
问题是IntelliJ在记录器(Mailer.class)上显示了一个错误并对我说:Logger(java.Lang.String)在“org”中拥有受保护的访问权限。阿帕奇。log4j。记录器“
为什么?我该如何解决这个问题
Tnx
# 1 楼答案
然后在你的代码中,你写了例如:
# 2 楼答案
你必须使用LogManager
签出此链接-
https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/LogManager.html#getLogger()
所以对于你的代码来说,改变是这样的-