logging - Log4Net : Debug vs Info?

标签 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位置使用调试方法吗?

最佳答案

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

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

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

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

我倾向于使用信息作为消息,这让我了解程序正在做什么(并确认它工作正常)并调试我可能需要尝试找出原因的信息它不起作用

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

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

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

关于logging - Log4Net : Debug vs Info?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6754443/

相关文章:

C++ 守护程序日志功能不写入文件(段错误?)

.net - 向同一解决方案中的多个项目添加相同的 "*.dll"引用

c# - 如何禁用 log4net.xml 文件生成

c# - 带有 AdoNetAppender 的 Log4Net - 没有任何反应

jsf - 所有级别的日志中每个用户/ session 都有唯一的 ID? Log4J?

parsing - 解析日志并在 1 个命令中输出 2 个字符串

logging - 为什么空值出现在 solr.log 的第一行内

python - python 创建多个日志文件

c# - Log4net 不写入日志文件

java - 设置日志文件名以在 Log4j 中包含当前日期