我有一个dotnet核心1.1 web-api,它使用ILogger登录到控制台。如果我在azure控制台中打开监控/诊断日志下的应用程序日志记录(Blob)选项,则会拾取这些日志并将其发送到基于(appname)/ month / day / hour的Blob。这很好。
但是,我使用相同ILogger和相同配置的webjob没有输出到这些mm / dd / hh目录。
如果我打开应用程序日志(文件系统),我会看到我的日志,但我真的希望它们转到相同的blob存储位置,所以我可以在Splunk中选择它们。
我哪里错了?
答案 0 :(得分:5)
根据您的描述,我通过VS2017使用目标框架.NET Core 1.1创建了我的控制台应用程序,如下所示:
Nuget包:
<强> Program.cs的强>
class Program
{
static void Main(string[] args)
{
ILoggerFactory loggerFactory = new LoggerFactory()
.AddConsole()
.AddDebug()
.AddAzureWebAppDiagnostics();
ILogger<Program> logger = loggerFactory.CreateLogger<Program>();
logger.LogInformation("Hello World!");
logger.LogInformation("Sleeping for 5s before exit...");
Thread.Sleep(5 * 1000);
}
}
在部署到azure之后,我可以在KUDU控制台和blob日志文件下看到日志,如下所示: