我正在使用ServiceStack框架和NLog进行日志记录。我可以很好地登录我的本地机器。但是在服务器上,它没有。我已检查Nlog.config
是否在bin
目录中,整个目录(包括bin
目录上方的目录都具有写访问权限。
以下是配置文件的摘录:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets async="true">
<target xsi:type="File" name="file" fileName="${basedir}\logs\${shortdate}.log" layout="${longdate} ${uppercase:${level}} ${message}" />
<target xsi:type="Debugger" name="debug"
header="===== ${date:format=ddd, dd MMM yyyy} ${time} ====="
layout="${level} | ${logger} | ${message} | ${onexception:${exception:format=tostring} | ${stacktrace}}"
footer="===== end of session ===== ${newline}"
/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="file,debug" />
</rules>
</nlog>
可能是什么问题?
答案 0 :(得分:1)
您是否尝试过改变自己知道的路径?
取代fileName="${basedir}\logs\${shortdate}.log"
而不是像fileName="c:\logs\${shortdate}.log"
?
Web应用程序中NLog的basedir
变量不在bin文件夹中运行。我想你会在
%SystemRoot%\Microsoft.NET\Framework\versionNumber\Temporary ASP.NET Files
如果是ASP.NET应用程序。
答案 1 :(得分:-1)
虽然我不清楚您的服务器环境和配置有什么问题,但我总是发现检查以下内容会很有帮助:
FWIW,根据我的经验,它通常是权限问题。