gpt4 book ai didi

c# - 从作为 Azure Web App 托管的 ASP.NET 5 应用程序进行日志记录

转载 作者:IT王子 更新时间:2023-10-29 04:34:50 25 4
gpt4 key购买 nike

我有一个 ASP.NET 5 Web API,作为 Web 应用程序托管在 Azure 中。我想使用 Azure 诊断记录我的代码中的消息。有多篇文章包括Azure docs这表明一旦启用,它应该像 System.Diagnostics.Trace.WriteLine 一样简单。日志应显示在 LogsFiles/Application 下以及 Azure 的日志流中。

我为网络应用程序启用了应用程序日志记录:

enter image description here

但是以下调用不会产生日志:

System.Diagnostics.Trace.TraceError("TEST");
System.Diagnostics.Trace.TraceInformation("TEST");
System.Diagnostics.Trace.TraceWarning("TEST");
System.Diagnostics.Trace.WriteLine("TEST");

我尝试手动定义 TRACE 符号,但没有成功:

enter image description here

我还尝试使用新的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com