NLog Logger.Trace永远挂起

时间:2012-07-08 05:01:20

标签: windows-services nlog

我有一个以我的用户名运行的Windows服务应用程序(通过installutil安装)。

以下是我的开始/停止事件重载:

protected override void OnStart(string[] args)
{
    try
    {
        Debugger.Launch();
    }
    catch (Exception ex)
    {
        logger.Fatal("...");
        throw;
    }
}

protected override void OnStop()
{
    logger.Trace("service stopped.");
}

logger是一个NLog Logger实例,如下所示:

private static Logger logger = LogManager.GetCurrentClassLogger();

这是我的NLog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true">

    <!-- 
  See http://nlog-project.org/wiki/Configuration_file 
  for information on customizing logging rules and outputs.
   -->
    <targets>
        <target xsi:type="Debugger" name="debugger_target" />
        <target xsi:type="Chainsaw" name="chainsaw_target" address="udp4://localhost:4141"/>
        <!--
        <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
            layout="${longdate} ${uppercase:${level}} ${message}" />
        -->
    </targets>

    <rules>
        <logger name="*" minlevel="Trace" writeTo="chainsaw_target"/>
    </rules>
</nlog>

服务启动很好,调试器按照预期的方式连接,如果我从那里继续,服务就会完成它的启动。

如果我然后停止服务,OnStop中的断点会命中,但当我尝试继续logger.Trace调用时,它会无限期挂起并对服务容器没有响应。

到底是怎么回事?有时候日志记录有效,有时它没有,现在似乎日志记录导致整个服务无法自行运行。有人有什么想法吗?

0 个答案:

没有答案