虽然已经配置好了NLog,可是有些时候应用程序仍旧会出现一些难以理解的问题,例如没有任何日志输出。其中最常见的原因就是ASP.NET的权限——ASP.NET的aspnet_wp.exe或w3wp.exe可能没有对NLog配置文件中指定目录的写入权限。NLog对于其自身运行中发生的异常有着很强的监测能力。如下设定可以将这些监测结果输出至指定位置,或是对这些异常进行相应的处理(默认设定将忽略自身异常):
异步处理、包装器(Warpper)以及复合输出目标
NLog的包装器和复合输出目标特性让我们能够修改输出目标的默认行为,这种修改体现在如下几个方面:
只要在配置文件中将若干个target节点嵌套起来,即可完成对包装器或复合输出目标的定义。嵌套深度没有任何限制。例如为某个输出目标添加异步处理以及异常自动重试功能,只要按照如下代码配置NLog即可:
以编程方式进行配置
某些情况下我们可能不愿用配置文件来配置NLog,而是选择使用NLog的配置API进行。对这些API的详细介绍已经超过了本文的范围,所以我们这里仅仅简单介绍一些。若希望以编程的方式对NLog进行配置,我们需要:
下面的代码片段以编程方式创建了两个输出目标对象——支持颜色的控制台和文件,并将记录等级等于或高于Debug的日志信息发送至这两个输出目标:
NLog还能干点儿啥?
NLogsupportssomemoreloggingscenarios,whichcouldn'tbefullydescribedhere.Seethelinksbelowformoreinformation:
除此之外,NLog还支持一些更加复杂的需要日志记录的场景。限于篇幅,这里无法一一列出,若你对其感兴趣,可以参考如下链接: