Nlog跟踪不写入Azure日志

时间:2016-06-02 21:56:51

标签: asp.net azure trace nlog azure-cloud-services

我有一个已部署到Azure的Web应用程序。我正在使用NLog进行错误记录,并且一直在努力让Trace和日志记录功能在Azure中运行。

这是问题所在: 我启用了文件日志记录和电子邮件警报,这在我本地部署的IIS实例中运行良好。我也在NLog配置中启用了跟踪日志记录,这也是有效的(我可以看到在视频工作室的“输出”窗口中触发跟踪消息,而网站在本地处理请求)。如果我编写显式的Diagnostics.Trace调用,它也会出现在“输出”窗口中。

当我将代码部署到Azure并调用我的方法时,会出现问题。我已经在诊断部分启用了应用程序日志记录,并且还检查了日志流但是没有获取Nlog跟踪语句(但是直接的跟踪语句确实有效!)...看起来文件记录也没有也可以在Azure中工作(尽管这可能是文件夹权限)。我想知道这是我的配置转换还是别的什么?!

这让我发疯,我无法弄清楚出了什么问题。

NLog Config(在Web.Config中):

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true">
    <targets>
      <target xsi:type="Trace" name="ETWTrace" layout="[${longdate:universalTime=true} ${processid}:${threadid}] ${level:uppercase=true}: ${message} Exception: ${exception:format=tostring}" />
      <target name="logfile" xsi:type="File" fileName="${basedir}/App_Data/Logs/Api-${date:universalTime=true:format=yyyy-MM-dd}.txt" layout="[${longdate:universalTime=true} ${processid}:${threadid}] ${level:uppercase=true}: ${message} Exception: ${exception:format=tostring}" encoding="UTF-8" />
      <target name="Mail" xsi:type="Mail" html="true" subject="[xDebug] Fatal Error" body="[${longdate:universalTime=true} ${processid}:${threadid}] ${level:uppercase=true}: ${message}" to="x@x.com" from="x@x.com" encoding="UTF-8" smtpUserName="xxxxx" enableSsl="True" smtpPassword="xxxxx" smtpAuthentication="Basic" smtpServer="smtp.sendgrid.net" smtpPort="587" />
   </targets>
  <rules>
    <logger name="*" minlevel="Trace" writeTo="logfile,ETWTrace" />
    <logger name="*" minlevel="Fatal" writeTo="Mail" />
  </rules>

Web.Release.Config:

    <nlog xdt:Transform="Replace"
    xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true">

    <targets>
      <target xsi:type="Trace" name="ETWTrace" layout="[${longdate:universalTime=true} ${processid}:${threadid}] ${level:uppercase=true}: ${message} Exception: ${exception:format=tostring}" />
      <target name="logfile" xsi:type="File" fileName="${basedir}/App_Data/Logs/Api-${date:universalTime=true:format=yyyy-MM-dd}.txt" layout="[${longdate:universalTime=true} ${processid}:${threadid}] ${level:uppercase=true}: ${message} Exception: ${exception:format=tostring}" encoding="UTF-8" />
      <target name="Mail" smtpDeliveryMethod="network" xsi:type="Mail" html="true" subject="[xDev] Fatal Error" body="[${longdate:universalTime=true} ${processid}:${threadid}] ${level:uppercase=true}: ${message}" to="x@xx.com" from="xx@xx.com" Encoding="UTF-8" smtpUsername="xxxx" enableSsl="True" smtpPassword="xxx" smtpAuthentication="Basic" smtpServer="smtp.sendgrid.net" smtpPort="587" />
    </targets>

    <rules>
      <logger name="*" minlevel="Trace" writeTo="logfile,ETWTrace" />
      <logger name="*" minlevel="Fatal" writeTo="Mail" />
    </rules>
  </nlog>

我认为我的配置转换可能出现了问题,但是我从服务器上下载了web.config并且它看起来很好所以也许是其他潜在的东西会导致nlog调用失败?

0 个答案:

没有答案