c# - 带有两个正在运行的程序的 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");
解决方案
推荐阅读
- python-3.x - 如何使用python从HTML页面的javascript代码中抓取数据
- azure - Azure 备份无法删除备份项
- python - 使用 Python 去除 CSV 文件中除一列之外的引号
- python - 未能将对象编组到 TFJob;规范无效:未能将对象编组到 TFJob
- r - 运行博客中的确切代码时出现错误
- python - 如何将旅行推销员问题 (TSP) 与 Haversine 距离列表一起使用?
- angular - Angular 8 元素在 ie11 中失败。Zone.JS 加载两次
- python - Python 定义 IFERROR 函数
- typescript - 如何在两个函数参数之一上要求对象属性
- c++ - 使用自定义 cpp 源文件而不将其作为命令行参数提供给 g++,例如 iostream