为什么我的NLog配置无法在我的服务器上运行?

时间:2014-01-23 14:55:37

标签: c# .net web-services servicestack nlog

我正在使用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>

可能是什么问题?

2 个答案:

答案 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)

虽然我不清楚您的服务器环境和配置有什么问题,但我总是发现检查以下内容会很有帮助:

  1. 确保您确切知道日志的目录是什么(由@PauloCorreia建议)。
  2. 确保该目录确实存在。
  3. 确保IIS工作进程具有能够写入该目录的正确权限。
  4. FWIW,根据我的经验,它通常是权限问题。