在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方法吗?
答案 0 :(得分:10)
这与过滤掉某些信息的能力有关。
不同之处在于您可以将系统配置为仅记录信息消息并忽略调试消息,或者您可以配置为记录两者,最重要的是,您可以在不重新编译/更改程序的情况下执行此操作。
即使记录了所有消息,如果您正在使用查看器,那么您可以将查看器设置为过滤掉调试消息并仅显示更高级别(因此更重要的消息)
(注意,实际上有更多的日志记录级别,例如警告,错误和致命)
我倾向于使用info来获取消息,这些消息可以让我了解程序正在做什么(并确认它正常工作)并调试我可能需要尝试跟踪原因的信息类型它无法正常工作
例如,我有一个在服务器上运行的服务,该服务器定期从外部服务器下载文本文件,然后处理该信息。我将程序配置为仅记录信息消息,我使用log.info记录服务启动和停止的时间以及一些其他重要消息。这使得日志文件变小,使我能够在每天使用中看到我想要的信息。
但是,如果处理出现任何问题,我可能需要查看更多(我敢说调试)有关我正在处理的文件内容的信息以及其他信息,以指示它对文件执行的操作。< / p>
我不需要也不想一直记录这些信息,所以通过使用log.debug,我可以忽略它,直到我需要它为止。 (我不想记录它的原因是因为输出非常大,因此减慢了进程。)
答案 1 :(得分:1)
如果您需要此信息仅用于调试,则应使用 debug ;-)
这些信息可以帮助您开发和改进代码......变量的值,例如..
在生产级别使用信息。也许一些一般信息,如“客户保存”
但请注意不要使用太多日志,因为在最坏的情况下它可能会降低应用程序的速度