有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将log4j Logger对象正确实例化到我的类中?

我正在使用一个简单的Java命令行,我需要在我的应用程序中插入log4j,因此我遵循本教程:

http://veerasundar.com/blog/2009/07/log4j-tutorial-adding-log4j-logging-to-your-project/

因此,我完成了以下步骤:

  1. 我将log4jjar文件放入我的项目库中

  2. 我把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
    

    因此,这个配置意味着输出必须打印到控制台中,我将调试模式与之关联

  3. 现在,教程说:

    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


共 (2) 个答案

  1. # 1 楼答案

    然后在你的代码中,你写了例如:

    logger.debug("Your message);
    ....
    logger.error("Somehting crahsed",e);...