当我使用“NT AUTHORITY\NETWORK SERVICE”凭据启动Windows服务时,我在NLog方面遇到了一个奇怪的问题:如果文件名包含点,则它根本不会将任何内容记录到文件目标中。
我在我的WinServer 2008 R2 Standard上运行Windows服务,启用了.NET Framework 3.5 SP1功能,NLog.config如下:
我在我的WinServer 2008 R2 Standard上运行Windows服务,启用了.NET Framework 3.5 SP1功能,NLog.config如下:
<targets>
<target xsi:type="File"
name="f"
fileName="${basedir}/logs/${shortdate}.txt"
encoding="utf-8"
concurrentWrites="true"
keepFileOpen="false"
layout="${longdate} ${uppercase:${level}} ${message}"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="f" />
</rules>
经过一些谷歌搜索和配置实验后,我通过在fileName
参数中不包括文件扩展名的方法想出了一个解决方法,并且它能够正常工作,这解决了问题,但并不是一个体面的解决方案。
使这个问题看起来更像是一些奇怪的魔法的原因是我成功地解决了我的第二个Windows服务配置中日志文件扩展名的问题(该服务在同一机器上以相同的凭据运行),只需在项目选项中更改程序集信息即可。
有任何想法吗?