我正在开发一个简单的Java命令行,我需要将 log4j 插入到我的应用程序中,所以我正在学习本教程:
http://veerasundar.com/blog/2009/07/log4j-tutorial-adding-log4j-logging-to-your-project/
所以我做了以下步骤:
我将log4j jar文件放入项目的库中。
我将log4j.properties放入配置包中,并使用这个最小配置对其进行配置:
#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
所以这个配置说输出必须打印到控制台,我关联 DEBUG 模式。
现在教程说:
在任何Java文件中,添加以下行以便启动 日志记录。
并显示此示例代码:
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在 Logger(Mailer.class); 上向我显示错误并对我说: Logger(java.Lang.String)在&#中具有受保护的访问权限39; org.apache.log4j.Logger'
为什么呢?我该如何解决这个问题?
TNX
答案 0 :(得分:2)
然后在您的代码中编写例如:
logger.debug("Your message);
....
logger.error("Somehting crahsed",e);...
答案 1 :(得分:0)
您必须使用LogManager
结帐此链接 -
因此,对于您的代码,更改将是这样的 -
private static final org.apache.log4j.Logger logger = LogManager.getLogger(Mailer.class);
logger.debug("Its debugging");