以这个简单的 NLog 示例配置为例:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="logfile" xsi:type="File" fileName="file.txt" />
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="logfile" />
</rules>
</nlog>
如何将其设置为仅在调试时记录,而不是在生产中运行时记录?
EDIT:
让事情变得更具挑战性:我的 NLog 配置文件是集中的,在所有应用程序/服务/站点上共享。所以我想避免改变每个项目,而只是修改配置文件。
一个简单的解决方案是有一个NLog.config
文件(其内容将被覆盖 - 您稍后会看到),加上每个解决方案配置/环境一个 NLog 配置文件(比方说,NLog.debug.config
and NLog.release.config
)。例如:
然后你配置一个Pre-build event command line
复制与当前活动配置对应的配置文件:
您应该将完整的命令粘贴到此处:
del "$(ProjectDir)NLog.config"
if "$(ConfigurationName)"=="Debug" (
copy "$(ProjectDir)NLog.debug.config" "$(ProjectDir)NLog.config"
) else (
copy "$(ProjectDir)NLog.release.config" "$(ProjectDir)NLog.config"
)
这将复制NLog.debug.config
to NLog.config
(有效地覆盖它)如果 DEBUG 是当前活动配置/环境,否则它将复制NLog.release.config
.
较短的版本如下所示(但请注意文件命名差异):
del "$(ProjectDir)NLog.config"
copy "$(ProjectDir)NLog.$(ConfigurationName).config" "$(ProjectDir)NLog.config"
另一件需要注意的事情是,在编译过程中,编译器会抛出与 NLog 相关的重复声明的各种警告。原因是编译器会为 NLog 找到 2 个(或更多)不同的配置文件,并且它们的声明会发生冲突。为了解决这个问题,你必须改变Properties
你的每一个extraNLog配置文件以使构建操作不复制它们。例如:
不要重复自己
最后,您可能不想复制公共/共享目标|规则|诸如此类的东西,以避免在多个文件中更改它们。为此,您可以将这些公共/共享部分移动到另一个文件并使用 https://github.com/nlog/NLog/wiki/Configuration-file#include-files.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)