无法使用 Nlog 将日志写入 Azure
Unable to Write Logs into Azure with Nlog
我正在开发 DotNET 核心应用程序并尝试将 Nlogs 实现到 Azure 应用程序服务中。在 Local machine/Visual Studio 上工作时,我能够成功生成 Nlog。但是,当我发布要部署到 Azure 云上的应用程序时,Nlog 不会在指定位置生成。
这是我发布 Nlog 时所做的配置:-
Release Configuration
将应用程序部署到云应用服务后,配置如下所示:-
Application settings
我没有收到任何错误,应用程序运行正常,但我没有看到应用程序服务生成的任何日志。
在Visual Studio中,创建.Net核心应用安装Nuget包
Microsoft.Extensions.Logging.AzureAppServices,
和 Microsoft.Extensions.Logging.Console, 版本
3.1.2
为您的项目。
在Startup.cs的ConfigureServices方法中,添加以下代码:
public void ConfigureServices(IServiceCollection services)
{
//other code
//add the following code
services.AddLogging(loggingBuilder =>
{
loggingBuilder.AddConsole();
loggingBuilder.AddDebug();
loggingBuilder.AddAzureWebAppDiagnostics();
});
}
添加新控制器class并添加以下代码:
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("**********first: hello, this is a test message!!!");
_logger.LogInformation("**********second: hello, this is a test message!!!");
return View();
}
- 将应用程序发布到 Azure。
- 在 Azure 门户中导航至 --> App Service Logs,执行以下设置
- 导航到Azure门户中的“日志流”,然后访问该网站,您可以看到日志:
您可以 activate log stream from log-files,因此它将监控存储在 HOME 文件夹中的任何以 .txt 或 .log 结尾的文件。然后你可以使用一个文件目标:
<?xml version="1.0" encoding="utf-8"?>
<nlog>
<targets async="true">
<target name="logfile" xsi:type="File" filename="${environment:HOME:cached=true}/logfiles/application/app-${shortdate}-${processid}.txt" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>
我正在开发 DotNET 核心应用程序并尝试将 Nlogs 实现到 Azure 应用程序服务中。在 Local machine/Visual Studio 上工作时,我能够成功生成 Nlog。但是,当我发布要部署到 Azure 云上的应用程序时,Nlog 不会在指定位置生成。
这是我发布 Nlog 时所做的配置:- Release Configuration
将应用程序部署到云应用服务后,配置如下所示:- Application settings
我没有收到任何错误,应用程序运行正常,但我没有看到应用程序服务生成的任何日志。
在Visual Studio中,创建.Net核心应用安装Nuget包 Microsoft.Extensions.Logging.AzureAppServices, 和 Microsoft.Extensions.Logging.Console, 版本 3.1.2 为您的项目。
在Startup.cs的ConfigureServices方法中,添加以下代码:
public void ConfigureServices(IServiceCollection services) { //other code //add the following code services.AddLogging(loggingBuilder => { loggingBuilder.AddConsole(); loggingBuilder.AddDebug(); loggingBuilder.AddAzureWebAppDiagnostics(); }); }
添加新控制器class并添加以下代码:
private readonly ILogger<HomeController> _logger;
public HomeController(ILogger<HomeController> logger)
{
_logger = logger;
}
public IActionResult Index()
{
_logger.LogInformation("**********first: hello, this is a test message!!!");
_logger.LogInformation("**********second: hello, this is a test message!!!");
return View();
}
- 将应用程序发布到 Azure。
- 在 Azure 门户中导航至 --> App Service Logs,执行以下设置
- 导航到Azure门户中的“日志流”,然后访问该网站,您可以看到日志:
您可以 activate log stream from log-files,因此它将监控存储在 HOME 文件夹中的任何以 .txt 或 .log 结尾的文件。然后你可以使用一个文件目标:
<?xml version="1.0" encoding="utf-8"?>
<nlog>
<targets async="true">
<target name="logfile" xsi:type="File" filename="${environment:HOME:cached=true}/logfiles/application/app-${shortdate}-${processid}.txt" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
</nlog>