Log4Net:调试与信息?

时间:2011-07-19 21:32:39

标签: logging log4net

在Log4Net中,Debug方法和Info方法有什么区别?通常什么时候我应该使用另一个?

前:

try

{

 // updating the customer object

 log.Info ("before loading current customer");     //1
 Customer objCustomer=GetCurrentLoggedInCustomer();
 log.Info ("Current customer loaded ");  //2
 objCustomer.LastName="New name";
 log.Info("Before saving");   //3
 objCustomer.Save(); 
 log.Info("Saved");     //4

}
catch(Exception ex)
{
    log.Error(ex.Message);  //5
}

我应该在1,2,3,4位置使用Debug方法吗?

2 个答案:

答案 0 :(得分:10)

这与过滤掉某些信息的能力有关。

不同之处在于您可以将系统配置为仅记录信息消息并忽略调试消息,或者您可以配置为记录两者,最重要的是,您可以在不重新编译/更改程序的情况下执行此操作。

即使记录了所有消息,如果您正在使用查看器,那么您可以将查看器设置为过滤掉调试消息并仅显示更高级别(因此更重要的消息)

(注意,实际上有更多的日志记录级别,例如警告,错误和致命)

我倾向于使用info来获取消息,这些消息可以让我了解程序正在做什么(并确认它正常工作)并调试我可能需要尝试跟踪原因的信息类型它无法正常工作

例如,我有一个在服务器上运行的服务,该服务器定期从外部服务器下载文本文件,然后处理该信息。我将程序配置为仅记录信息消息,我使用log.info记录服务启动和停止的时间以及一些其他重要消息。这使得日志文件变小,使我能够在每天使用中看到我想要的信息。

但是,如果处理出现任何问题,我可能需要查看更多(我敢说调试)有关我正在处理的文件内容的信息以及其他信息,以指示它对文件执行的操作。< / p>

我不需要也不想一直记录这些信息,所以通过使用log.debug,我可以忽略它,直到我需要它为止。 (我不想记录它的原因是因为输出非常大,因此减慢了进程。)

答案 1 :(得分:1)

如果您需要此信息仅用于调试,则应使用 debug ;-)
这些信息可以帮助您开发和改进代码......变量的值,例如..

在生产级别使用信息。也许一些一般信息,如“客户保存”

但请注意不要使用太多日志,因为在最坏的情况下它可能会降低应用程序的速度