如何正确地将log4j Logger对象实例化到我的类中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何正确地将log4j Logger对象实例化到我的类中?相关的知识,希望对你有一定的参考价值。
我正在编写一个简单的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)在'org.apache.log4j.Logger'中具有受保护的访问权限
为什么?我该如何解决这个问题?
TNX
答案
然后在您的代码中编写例如:
logger.debug("Your message);
....
logger.error("Somehting crahsed",e);...
另一答案
您必须使用LogManager
查看此链接 -
因此,对于您的代码,更改将是这样的 -
private static final org.apache.log4j.Logger logger = LogManager.getLogger(Mailer.class);
logger.debug("Its debugging");
以上是关于如何正确地将log4j Logger对象实例化到我的类中?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jquery ajax 正确地将 json 对象传递给烧瓶服务器