Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查NLog中是否发生日志事件_C#_Nlog - Fatal编程技术网

C# 检查NLog中是否发生日志事件

C# 检查NLog中是否发生日志事件,c#,nlog,C#,Nlog,我正在尝试检查我的应用程序中是否发生日志事件,以及它是否有作用 我到处都查过了,似乎找不到任何关于日志事件是否发生的信息 private static Logger logger = LogManager.GetCurrentClassLogger(); logger.Info("Info Log Message"); if(logger.event == true) { //an log even happen this run } 看起来您可以使用MethodCall目标来实现这一

我正在尝试检查我的应用程序中是否发生日志事件,以及它是否有作用

我到处都查过了,似乎找不到任何关于日志事件是否发生的信息

private static Logger logger = LogManager.GetCurrentClassLogger();
logger.Info("Info Log Message");
if(logger.event == true)
{
    //an log even happen this run
}

看起来您可以使用
MethodCall
目标来实现这一点

您可以在
NLog.config
文件中添加一个目标条目,将日志事件定向到某个类中的静态方法。有关如何执行此操作的更多详细信息,请参阅

您也可以直接在如下所示的代码中执行此操作(示例复制自文档):


我刚刚意识到,如果您只想检查是否调用了特定的记录器,那么我关于的回答可能无法回答您的问题。如果是这样,您可以使用规则仅从某个记录器获取事件,如文档部分所示

您需要在
NLog.config
部分添加一个引用您定义的目标的条目。我不知道是否有办法在代码中设置目标,并将其与此规则相结合。您可能必须在配置文件中定义目标:

<targets>
    <target name="logfile" xsi:type="File" fileName="file.txt" />
</targets>

<rules>
    <logger name="SomeNamespace.Component.*" minlevel="Trace" writeTo="logfile" final="true" />
    <logger name="*" minlevel="Info" writeTo="logfile" />
</rules>


您是否尝试过设置断点并调试应用程序?我尝试过。程序运行良好。但我会将其设置为断点,以便查看logger/LogManger中是否有任何事件触发计数,但我找不到=/您只是想看看是否调用了
logger.Info()
(replace Info w/所有可能的日志级别),还是想确定NLog是否正在向您的目标写入?我刚刚回答了类似的问题,可以使用内存目标来代替MethodCall
<targets>
    <target name="logfile" xsi:type="File" fileName="file.txt" />
</targets>

<rules>
    <logger name="SomeNamespace.Component.*" minlevel="Trace" writeTo="logfile" final="true" />
    <logger name="*" minlevel="Info" writeTo="logfile" />
</rules>