是的,您可以使用MethodCall
target 来执行此操作(请参阅https://github.com/nlog/NLog/wiki/MethodCall-target)
这里的例子:
namespace SomeNamespace
{
using System;
public class MyClass
{
public static void HandleFatalEventLog(string level)
{
if(level.Equal("Fatal", StringComparison.OrdinalIgnoreCase))
{
Environment.Exit(-1);
}
}
}
}
和 NLog.config 文件:
<?xml version="1.0" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="m" xsi:type="MethodCall" className="SomeNamespace.MyClass, MyAssembly" methodName="HandleFatalEventLog">
<parameter layout="${level}" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Fatal" writeTo="m" />
</rules>
</nlog>
PS:但是,我不推荐这种方法,记录器不应该关闭应用程序