C# Azure:如何在Azure中的ASP.NET核心应用程序中写入和读取自定义日志消息?

C# Azure:如何在Azure中的ASP.NET核心应用程序中写入和读取自定义日志消息?,c#,azure,asp.net-core,logging,pulumi,C#,Azure,Asp.net Core,Logging,Pulumi,我希望实现以下目标: 在我的ASP.NET核心web服务应用程序中具有自定义日志语句 将我的应用程序部署到Azure(在我的例子中使用Pulumi) 调用webservice,使其触发日志代码 以编程方式或通过基于Azure浏览器的GUI读取记录的消息 我的目标是.NET5.0 在我的代码中,我执行以下操作: public class MyController : ControllerBase { private readonly ILogger<MyController>

我希望实现以下目标:

  • 在我的ASP.NET核心web服务应用程序中具有自定义日志语句
  • 将我的应用程序部署到Azure(在我的例子中使用Pulumi)
  • 调用webservice,使其触发日志代码
  • 以编程方式或通过基于Azure浏览器的GUI读取记录的消息
  • 我的目标是.NET5.0

    在我的代码中,我执行以下操作:

    public class MyController : ControllerBase
    {
        private readonly ILogger<MyController> _logger;
        public MyController(ILogger<MyController> logger) => _logger = logger;
    
        public async Task<ActionResult<something>> DoStuff()
        {
            _logger.LogInformation("Hello, World!");
            ...
        }
    }
    
    通过上述步骤,当我在VisualStudio中以调试模式运行应用程序时,我可以在输出窗格中看到日志消息。所以日志代码肯定会被触发。但是,当我将应用程序部署到Azure时,我不知道如何获取日志消息,并且我发现Azure GUI令人困惑

    我正在挣扎的是:

  • 我需要在我的代码中执行什么配置?例如,我的
    程序
    启动
    类中的NuGet包或东西
  • 我需要在Azure中执行什么配置
  • 在基于Azure浏览器的GUI中,我要去哪里查看这些日志消息
  • 如何以编程方式获取这些日志(通过Pulumi或原始Azure API)
  • 当然,我已经查找了文档,但我发现文档错综复杂。大部分内容似乎与诊断有关,如响应时间。我只想从我的代码中查看我自己的自定义日志消息

    像这样的帖子给出了一些提示,但在阅读了帖子之后,我仍然不清楚如何阅读日志:

    可能存在良好的文档和指南。请帮我找到它们


    提前谢谢

    您有几种选择:

  • 使用PowerShell中的命令将应用程序配置为登录到文件
  • 使用PowerShell中的命令实时查看日志
  • 应用程序将从Azure门户手动进行日志记录
  • 为应用程序服务启用应用程序洞察

  • 要下载日志,请使用命令或使用FTP连接到日志目录。您有几个选项:

  • 使用PowerShell中的命令将应用程序配置为登录到文件
  • 使用PowerShell中的命令实时查看日志
  • 应用程序将从Azure门户手动进行日志记录
  • 为应用程序服务启用应用程序洞察

  • 要下载日志,请使用命令或使用FTP连接到日志目录,我想我已经找到了缺少的内容。我做了两件事

    第一件事是将我在Pulumi中的错误级别从“error”更改为“Verbose”:

    另一件事是安装一个站点扩展:

  • 转到Azure中的应用程序服务
  • 在左侧菜单中的监控下,转到应用程序服务日志
  • 单击标题“单击此处安装ASP.NET核心站点扩展以启用应用程序日志记录”
  • 在此之后,我可以通过运行az webapp log tail查看日志

    现在我只需要弄清楚如何用Pulumi以编程方式实现这一点


    我想我找到了丢失的东西。我做了两件事

    第一件事是将我在Pulumi中的错误级别从“error”更改为“Verbose”:

    另一件事是安装一个站点扩展:

  • 转到Azure中的应用程序服务
  • 在左侧菜单中的监控下,转到应用程序服务日志
  • 单击标题“单击此处安装ASP.NET核心站点扩展以启用应用程序日志记录”
  • 在此之后,我可以通过运行az webapp log tail查看日志

    现在我只需要弄清楚如何用Pulumi以编程方式实现这一点


    您可以在单击(例如)性能后读取日志→ 选择一个电话→ 查看右下角的“查看所有遥测”。如果日志没有出现,则配置为发送您希望的日志级别。我没有看到“查看所有遥测”按钮。你能再解释一下你点击按钮的顺序吗?你可以在点击(例如)后阅读日志→ 选择一个电话→ 查看右下角的“查看所有遥测”。如果日志没有出现,则配置为发送您希望的日志级别。我没有看到“查看所有遥测”按钮。你能再次解释一下你点击按钮的顺序吗?还有一个选项可以实时查看日志(无需手动使用az webapp log tail命令)。转到Azure门户->监控(左菜单)->日志流。还有一个选项可以实时查看日志(无需手动使用az webapp Log tail命令)。转到Azure门户->监视(左菜单)->日志流。
        var app = new AppService(
            "kmsApp",
            new AppServiceArgs
            {
                Logs = new AppServiceLogsArgs
                {
                    ApplicationLogs = new AppServiceLogsApplicationLogsArgs { FileSystemLevel = "Error" },
                    DetailedErrorMessagesEnabled = true,
                    FailedRequestTracingEnabled = true,
                    HttpLogs = new AppServiceLogsHttpLogsArgs
                    {
                        FileSystem = new AppServiceLogsHttpLogsFileSystemArgs { RetentionInDays = 1, RetentionInMb = 35 }
                    }
                }
            },
            ...);
    
    ApplicationLogs = new AppServiceLogsApplicationLogsArgs { FileSystemLevel = "Verbose" },