在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位置使用调试方法吗?
最佳答案
这与过滤某些信息的能力有关。
区别在于,您可以将系统配置为仅记录信息消息并忽略调试消息,或者您可以配置为记录两者,最重要的是,您可以在不重新编译/更改程序的情况下执行此操作。
即使记录了所有消息,如果您使用查看器,则可以将查看器设置为过滤掉调试消息并仅显示更高级别(因此更重要的消息)
(注意,实际上有更多的日志级别,例如警告、错误和致命)
我倾向于使用信息作为消息,这让我了解程序正在做什么(并确认它工作正常)并调试我可能需要尝试找出原因的信息它不起作用
例如,我有一个在服务器上运行的服务,该服务定期从外部服务器下载文本文件,然后处理该信息。我将程序配置为仅记录信息消息,并使用 log.info 来记录服务何时启动和停止以及其他一些重要消息。这使得日志文件很小,但使我能够在日常使用中看到我想要的信息。
但是,如果处理过程中出现任何问题,我可能需要查看有关我正在处理的文件内容的更多(我敢说调试)信息以及其他信息来指示它对文件执行的操作。
我不需要也不想一直记录这些信息,所以通过使用 log.debug,我可以忽略它,直到我需要它的时候。 (我不想记录它的原因是因为输出非常大,因此减慢了过程)。
关于logging - Log4Net : Debug vs Info?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6754443/