我有一个 ASP.NET 5 Web API,作为 Web 应用程序托管在 Azure 中。我想使用 Azure 诊断记录我的代码中的消息。有多篇文章包括Azure 文档 https://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-troubleshoot-visual-studio/#apptracelogs这表明它应该像System.Diagnostics.Trace.WriteLine
一旦启用。日志应该显示在下面LogsFiles/Application
以及 Azure 中的日志流中。
我为 Web 应用程序启用了应用程序日志记录:
但以下调用不会产生日志:
System.Diagnostics.Trace.TraceError("TEST");
System.Diagnostics.Trace.TraceInformation("TEST");
System.Diagnostics.Trace.TraceWarning("TEST");
System.Diagnostics.Trace.WriteLine("TEST");
我尝试手动定义TRACE
符号,但没有运气:
我也尝试使用新的Microsoft.Extensions.Logging
框架及使用ILogger.Log
API,但又没有任何结果:
public void Configure(IApplicationBuilder app,
IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
loggerFactory.MinimumLevel = LogLevel.Debug;
var sourceSwitch = new SourceSwitch("Sandbox.AspNet5.ApiApp-Demo");
sourceSwitch.Level = SourceLevels.All;
loggerFactory.AddTraceSource(sourceSwitch,
new ConsoleTraceListener(false));
loggerFactory.AddTraceSource(sourceSwitch,
new EventLogTraceListener("Application"));
}
关于我做错了什么有什么想法吗?
如果你看看你的web.config
,它可能有stdoutLogEnabled="false"
。如果将其设置为 true,则写入标准输出的任何内容都将写入文件。还有stdoutLogFile
确定它的去向,默认情况下位于d:\home\logfiles
.
现在您需要确保您的日志记录实际上已发送到标准输出。正在做Console.WriteLine
肯定会起作用。我认为也可以通过以下方式进行配置ILoggerFactory
在你的startup.cs
使日志转到标准输出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)