gpt4 book ai didi

c# - Nlog不写入Windows服务中的日志文件

转载 作者:太空狗 更新时间:2023-10-30 00:19:06 28 4
gpt4 key购买 nike

我有一个用 .net 4.0 编写的 Windows 服务,我在本地系统的凭据下安装了它。在我使用nlog的代码中,

private static Logger logger = LogManager.GetCurrentClassLogger();
logger.Debug("some information");

我也将nlog.config复制到exe文件所在的同一目录

<?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">
<targets>
<target name="logfile" type="File"
fileName="c:\log\TestService\My.log"
layout="${longdate}::${logger}::${message}"
keepFileOpen="false" />
</targets>

<rules>
<logger name="*" minlevel="Info" maxLevel="Deubg" writeTo="logfile" />
</rules>
</nlog>

但是如果我启动服务,我根本看不到日志文件已创建。如果我将 log.Debug 代码交换为 Debug.WriteLine 并使用我的 Visual Studio 附加到 Windows 服务进程进行调试,我可以看到输出窗口有我的调试消息,这意味着我的 Windows 服务代码是正确的。

我的nlog代码有问题吗?

-- 更新 1 --

我将 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">
<targets>
<target name="logfile" type="File"
fileName="c:\log\TestService\My.log"
layout="${longdate}::${logger}::${message}"
keepFileOpen="false" />
</targets>

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

并将我的代码更改为

logger.Trace("some information");

然后就可以了。我不确定我的第一组配置有什么问题。

最佳答案

更新

<logger name="*" minlevel="Info" maxLevel="Deubg" writeTo="logfile" />
^^^^^

首先:Debug拼写错误。

但主要的问题是Debug级别低于info级别

以下是允许的日志级别(按降序排列):

  • 关闭
  • 致命的
  • 错误
  • 警告
  • 信息
  • 调试
  • trace(最详细的信息。)

Link to the nlog documentation

关于c# - Nlog不写入Windows服务中的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25184169/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com