【问题标题】:Maintaining log file using `log4j` api in java在 java 中使用 `log4j` api 维护日志文件
【发布时间】:2013-08-19 08:09:01
【问题描述】:

我正在使用log4j api 来维护我的应用程序的日志。我在初始化private Logger logger;时使用了以下内容@

logger = Logger.getLogger("Application Started ");

但它会在每个操作中显示Application Started,如下所示:

[ INFO] [2013-08-19 11:50:41,140] AWT-EventQueue-0 Application Started at Mon Aug 19 11:50:33 NPT 2013 (SMSCMainFrame.java:248)- SMSC Setup Panel opened.
[ INFO] [2013-08-19 12:00:15,423] AWT-EventQueue-0 Application Started at Mon Aug 19   12:00:08 NPT 2013 (SMSCMainFrame.java:247)- 
SMSC Setup Panel opened.
[ INFO] [2013-08-19 12:00:17,576] AWT-EventQueue-0 Application Started at Mon Aug 19 12:00:08 NPT 2013 (SMSCMainFrame.java:264)- 
Key messaage setup panel opened.
[ INFO] [2013-08-19 12:00:19,713] AWT-EventQueue-0 Application Started at Mon Aug 19 12:00:08 NPT 2013 (SMSCMainFrame.java:282)- 
Binding details panel opened
[ INFO] [2013-08-19 12:00:21,850] AWT-EventQueue-0 Application Started at Mon Aug 19 12:00:08 NPT 2013 (SMSCMainFrame.java:353)- 
Key Message Details Panel opened
[ INFO] [2013-08-19 12:00:23,093] AWT-EventQueue-0 Application Started at Mon Aug 19 12:00:08 NPT 2013 (SMSCMainFrame.java:371)- 
Blocked Smsc Details panel opened.
[ INFO] [2013-08-19 12:00:24,575] AWT-EventQueue-0 Application Started at Mon Aug 19 12:00:08 NPT 2013 (SMSCMainFrame.java:335)- 
Request response report panel opened.

我想在我的应用程序启动时只显示一次Application started 消息。

点赞:

[ INFO] [2013-08-19 11:50:41,140] AWT-EventQueue-0 Application Started...

那么只有其他日志应该显示在我的日志文件中。

请帮助我。 谢谢

【问题讨论】:

    标签: java log4j


    【解决方案1】:

    您需要提供更多代码 sn-p,显示如何调用 logger,例如:

    logger.info("SMSC Setup Panel opened.");
    

    基本上,每次调用logger.info(""),如果日志级别设置为INFO,日志文件中都会有一个日志项。

    仅显示一项,例如:

    [ INFO] [2013-08-19 11:50:41,140] AWT-EventQueue-0 应用程序已启动...

    您可以将您的日志级别设置为INFO,并通过以下方式调用记录器:

    logger.info("application started");
    ....
    if (logger.isDebugEnabled()) logger.debug("xxxxxx");
    

    【讨论】:

      【解决方案2】:

      getLogger 的参数是记录器的名称;你告诉它调用记录器Application Started。相反,通常最好使用您的类名(例如,Logger.getLogger(ThisClass.class))。您要做的只是编写一条带有“应用程序已启动”内容的日志消息,因此请在代码的开头执行此操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-13
        • 2010-09-10
        • 1970-01-01
        相关资源
        最近更新 更多