在java中使用`log4j` api维护日志文件

时间:2013-08-19 08:09:01

标签: java log4j

我正在使用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...

然后只应在我的日志文件中显示其他日志。

请帮帮我。 感谢

2 个答案:

答案 0 :(得分:1)

您需要提供更多代码段,显示如何调用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");

答案 1 :(得分:0)

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