我正在使用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...
然后只应在我的日志文件中显示其他日志。
请帮帮我。 感谢
答案 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)
)。您要做的只是编写一条内容为“应用程序已启动”的日志消息,所以在代码的开头就这样做了。