NLog只在Debug模式輸出log

  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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章