LogWriter.ShouldLog(..)
方法的行为基于什么?或使用它的真正意图是什么?它的文档页面非常稀疏,没有提供太多的见解。引用:
(在所有版本的企业库中都填写相同的错字,这使我想知道作者是否对此予以了很大的关注。)
该方法对我来说似乎比较空灵。我应该在登录之前始终检查它吗?
目前,我仅检查基于配置中显式设置的 LogWriter.IsLoggingEnabled(..)
。这代表了一种具体情况:日志记录已打开或关闭。
最佳答案
行为LogWriter.ShouldLog( LogEntry logEntry )
针对LogEntry中的数据查询所有已配置的过滤器,以确定是否应记录特定的LogEntry。如果所有过滤器都返回true(对于ShouldLog),则在调用Write
方法时将记录LogEntry。尽管可以创建自己的自定义过滤器,但开箱即用的过滤器是Category,Priority和LoggingEnabled。
相反,IsLoggingEnabled
检查仅检查一个过滤器,而ShouldLog
调用检查所有过滤器(包括IsLoggingEnabled
)。
意图
该调用的目的是,如果不记录LogEntry
,则允许开发人员避免进行昂贵的操作。什么是“昂贵的”取决于应用和要求。例如在紧密循环中进行过多的字符串操作,或者可能进行了进程外调用,以检索某些信息(尽管这可能是缓存的不错选择!)。
我应该在登录之前始终检查它吗?
通常,除非有充分的理由,否则我将避免调用ShouldLog
。
我可以想到一些原因:
ShouldLog
,因此,如果您正在记录日志,则对于记录的每条消息ShouldLog
关于.net - 什么是LogWriter.ShouldLog(LogEntry)方法行为基于?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5554127/