我在开发一个asp.net核心应用程序时遇到了一个奇怪的问题,该应用程序已部署到Microsoft Azure并作为应用程序服务在此运行。我的目标是完整的.net框架。
我正在使用Microsoft.Extensions.Logging
,并且日志可以在本地正常工作,但是将其部署到Microsoft Azure时根本没有日志。 LogStream窗口保持空白,仅显示No new Trace in the last n minutes
输出。
我已经检查过的东西:
我的appsettings.json的一部分
"Logging": {
"LogLevel": {
"Default": "Information"
}
然后我将Logger实例注入到控制器中,如下所示:
ILogger<FooBarClassName> myLogger;
public FooBarClassName(ILogger<FooBarClassName> logger)
{
myLogger = logger;
....
}
并像这样使用它:
void SomeMethod()
{
...
myLogger.LogInformation("Some Log Message");
...
}
感谢您为解决此问题提供的帮助。
答案 0 :(得分:3)
您可以参考following steps来检查是否正确添加了ILogger。
第1步:
转到Startup.cs
,在Configure
方法内,添加以下签名。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
ILoggerFactory
默认是由asp.net内核注入到类中的。
Setp 2 :
设置提供商。
loggerFactory.AddDebug();
loggerFactory.AddAzureWebAppDiagnostics();
AddAzureWebAppDiagnostics
来自package。
Setp 3 :
我的HomeController和appsettings.json
中的示例与您相同:
private readonly ILogger _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
void SomeMethod()
{
_logger.LogInformation("some log message.");
}
public IActionResult Index()
{
SomeMethod();
return View();
}
第4步:
设置诊断日志以打开应用程序日志
第5步:
查看日志流中的日志