2017-02-24 236 views
1

我试图获得nlog与Azure webapp日志流协同工作。使用NLog记录Azure日志流

如果我不使用nlog,并且只使用System.Diagnostics.Trace.WriteLine,则会出现日志。

但是,如果我用我的nlog.config的Trace类型,它不显示跟踪日志...

<?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 xsi:type="Trace" name="trace" layout="${message}" /> 
    </targets> 

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

我看不到任何东西,我是从做不同接受的答案在这里...

How to integrate NLog to write log to Azure Streaming log

注意,我砍下nlog.config文件只显示踪迹 - 但我通常也有一个File目标类型 - 我已经没有这个企图。

我登录到已部署的Azure网站,并且nlog配置文件已成功上传。我正在部署使用Github部署。

我已将Azure中的日志记录设置为仅使用文件系统日志记录,并将其设置为verbose

任何想法?

回答

3

事实证明,在Visual Studio中启用应用洞察(我添加到项目中最近的事情),它已插入的n日志配置部分成我的web.config。这意味着我的nlog.config文件根本没有被使用。我已经通过从我的web.config中删除nlog config部分来修复它,并将Application Insights目标复制到我的nlog.config文件中。 “跟踪”目标类型现在按预期工作并显示在Azure流式日志中。

1

NLog-Trace-Target仅对调试级别日志事件执行Trace.WriteLine。

也许尝试这里显示的自定义MyTraceTarget:

https://github.com/NLog/NLog/issues/1968

+0

感谢您的支持。您关于自定义目标的建议使我走上了正确的道路,因为自定义目标也无法正常工作,所以我最终在调试器中查看了LogManger.Configuration,并向我展示了实际问题。 Upvoted :) – Dan