首页 > 解决方案 > 带有两个正在运行的程序的 NLog

问题描述

我有一个 Windows 服务,它运行在与其通知相同的位置。它们与WebSocketSharp通信。

但只有一个程序有日志文件。我认为问题是,通知nlog.config首先消耗了服务,而服务nlog.config则被锁定了。但我可能会混淆它。也总是通知只产生日志,而不是服务。可能是我nlog.config的错误?但是,当服务和通知应该使用相同的时候,为什么通知会产生一个而服务不会呢?

我已经测试过,该服务不会产生任何日志,即使通知没有运行。

Windows Service 和 NLog 可能有问题吗?

这是我的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">
   <time type="AccurateUtc" />
   <targets>
      <target name="debug-logfile" xsi:type="File" fileName="${specialfolder:folder=ApplicationData}/MyService/log/${date:format=yyyy-MM}.log" layout="${longdate} | ${level} | ${message}" />
      <target name="trace-logfile" xsi:type="File" fileName="${specialfolder:folder=ApplicationData}/MyService/log/trace/${date:format=yyyy-MM-dd}.log" layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fffffff} | ${level} | ${message}" />
      <target name="errorfile" xsi:type="File" fileName="${specialfolder:folder=ApplicationData}/MyService/log/Error.log" layout="${longdate} | ${level} | ${message}" />
      <target name="console" xsi:type="Console" layout="${longdate} | ${level} | ${callsite} | ${message}" />
   </targets>
   <rules>
      <logger name="*" minlevel="Trace" writeTo="trace-logfile" />
      <logger name="*" minlevel="Debug" writeTo="debug-logfile" />
      <logger name="*" minlevel="Error" writeTo="errorfile" />
   </rules>
</nlog>

这是我使用 NLog 的方法:

protected static NLog.Logger Log = LogManager.GetCurrentClassLogger();
Log.Trace("Message");

标签: c#nugetnlognlog.config

解决方案


推荐阅读