NLog只在Debug模式输出log

本文详细介绍了如何使用NLog配置文件中的filters来动态控制日志记录的级别,仅在Debug模式下记录日志。通过添加BuildConfigLayoutRenderer脚本,实现了根据不同构建配置(Debug或Release)调整日志输出的行为。
摘要由CSDN通过智能技术生成

  1.首先在NLog.config配置文件rules中添加filters,如下

<target xsi:type="AsyncWrapper" name="asyncProd">
  <target xsi:type="File" name="logfileProc" fileName="${basedir}/logs/${buildConfiguration}.log"/>
</target>

<rules>
	<logger name="*" minlevel="Info" writeTo="asyncProd">
	  <filters>
		<when condition="equals('${buildConfiguration}','Debug')" action="Ignore" />
	  </filters>
	</logger>
</rules>

  2.然后添加一个BuildConfigLayoutRenderer脚本

[LayoutRenderer("buildConfiguration")]
[ThreadAgnostic]
public class BuildConfigLayoutRenderer : LayoutRenderer
{
	private String buildconfig;
	private String GetBuildConfig()
	{
		if (buildconfig != null)
		{
			return buildconfig;
		}

		#if DEBUG
			buildconfig = "Debug";
		#else
			buildconfig = "Release";
		#endif
			return buildconfig;
	}

	protected override void Append(StringBuilder builder, LogEventInfo logEvent)
	{
		builder.Append(GetBuildConfig());
	}
}

  3.最后在Main方法调用如下语句

LayoutRenderer.Register<BuildConfigLayoutRenderer>("buildConfiguration");

  搞定。
  参考博客:
https://stackoverflow.com/questions/26846553/nlog-only-log-while-debugging

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值