我有一个 ASP.NET 5 Web API,作为 Web 应用程序托管在 Azure 中。我想使用 Azure 诊断记录我的代码中的消息。有多篇文章包括Azure docs这表明一旦启用,它应该像 System.Diagnostics.Trace.WriteLine 一样简单。日志应显示在 LogsFiles/Application
下以及 Azure 的日志流中。
我为网络应用程序启用了应用程序日志记录:
但是以下调用不会产生日志:
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
肯定会起作用。我认为也可以通过 startup.cs
中的 ILoggerFactory
进行配置,使日志输出到 stdout。
关于c# - 从作为 Azure Web App 托管的 ASP.NET 5 应用程序进行日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34866674/