Can';在Azure日志流中看不到日志

Can';在Azure日志流中看不到日志,azure,Azure,在我的Web Api应用程序中,我有控制器: [Route("api/[controller]")] public class ValuesController : Controller { // GET api/values [HttpGet] public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET

在我的Web Api应用程序中,我有控制器:

[Route("api/[controller]")]
public class ValuesController : Controller
{
    // GET api/values
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    [HttpGet("{id}")]
    public string Get(int id)
    {
        System.Diagnostics.Trace.TraceInformation("in get...");
        return "value";
    }
}
[路由(“api/[控制器]”)]
公共类值控制器:控制器
{
//获取api/值
[HttpGet]
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
//获取api/values/5
[HttpGet(“{id}”)]
公共字符串Get(int-id)
{
系统.诊断.跟踪.跟踪信息(“获取中…”);
返回“值”;
}
}
我希望在发布时能够在Azure上看到“in get…”日志。在Azure上,在
应用程序服务日志中
我打开
应用程序日志(文件系统)
,并将级别设置为
信息
。在
日志流中
,当我转到方法的url时,我在日志中看到:

连接。。。2020-02-09T06:07:38欢迎,您现在已连接到 日志流服务。默认超时为2小时。改变 应用程序设置SCM_LOGSTREAM_超时超时(秒)。 2020-02-09 06:08:07.158+00:00[信息] Microsoft.AspNetCore.Hosting.Internal.WebHost:请求正在启动 HTTP/1.1get 2020-02-09 06:08:07.159+00:00[信息] Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:正在执行 操作方法TestApi.Controllers.ValuesController.Get(TestApi)与 参数(5)-模型状态有效2020-02-09 06:08:07.160+00:00 [信息]Microsoft.AspNetCore.Mvc.Internal.ObjectResultExecutor: 执行ObjectResult,写入值 Microsoft.AspNetCore.Mvc.ControllerContext

但是我没有看到我的日志“in get…”

这是一个用于.NET的核心(但对于.NET framework,它可以很好地工作)

作为.NET核心web应用程序的解决方案,我建议您可以使用
ILogger
,它可以将消息写入应用程序日志。 在
Startup.cs
->
Configure
方法中,重新编写如下配置方法:

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
           //your other code

            //add the following 2 lines of code.
            loggerFactory.AddConsole();
            loggerFactory.AddDebug();


            app.UseStaticFiles();

            //your other code
       }
然后在
值控制器中

public class ValuesController : Controller
{

    private readonly ILogger _logger; 

   public ValuesController(ILoggerFactory loggerFactory)
   {
    _logger = loggerFactory.CreateLogger<ValuesController>();
   }
    // GET api/values
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    [HttpGet("{id}")]
    public string Get(int id)
    {
        //System.Diagnostics.Trace.TraceInformation("in get...");

        //use ILogger here.
        _logger.LogInformation("in get...");
        return "value";
    }
}
公共类值控制器:控制器
{
专用只读ILogger\u记录器;
公共价值控制员(iLogger工厂Logger工厂)
{
_logger=loggerFactory.CreateLogger();
}
//获取api/值
[HttpGet]
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
//获取api/values/5
[HttpGet(“{id}”)]
公共字符串Get(int-id)
{
//系统.诊断.跟踪.跟踪信息(“获取中…”);
//在这里使用ILogger。
_logger.LogInformation(“in get…”);
返回“值”;
}
}
这是一个.NET核心(但对于.NET framework,它可以很好地工作)

作为.NET核心web应用程序的解决方案,我建议您可以使用
ILogger
,它可以将消息写入应用程序日志。 在
Startup.cs
->
Configure
方法中,重新编写如下配置方法:

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
           //your other code

            //add the following 2 lines of code.
            loggerFactory.AddConsole();
            loggerFactory.AddDebug();


            app.UseStaticFiles();

            //your other code
       }
然后在
值控制器中

public class ValuesController : Controller
{

    private readonly ILogger _logger; 

   public ValuesController(ILoggerFactory loggerFactory)
   {
    _logger = loggerFactory.CreateLogger<ValuesController>();
   }
    // GET api/values
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    [HttpGet("{id}")]
    public string Get(int id)
    {
        //System.Diagnostics.Trace.TraceInformation("in get...");

        //use ILogger here.
        _logger.LogInformation("in get...");
        return "value";
    }
}
公共类值控制器:控制器
{
专用只读ILogger\u记录器;
公共价值控制员(iLogger工厂Logger工厂)
{
_logger=loggerFactory.CreateLogger();
}
//获取api/值
[HttpGet]
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
//获取api/values/5
[HttpGet(“{id}”)]
公共字符串Get(int-id)
{
//系统.诊断.跟踪.跟踪信息(“获取中…”);
//在这里使用ILogger。
_logger.LogInformation(“in get…”);
返回“值”;
}
}

Ivan的回答在aspnetcore 3.1上对我并不完全有效,但它让我找到了这篇文章,这篇文章提供了我需要的所有信息:


Ivan的回答在aspnetcore 3.1上对我来说并不完全有效,但它让我找到了这篇文章,这篇文章提供了我需要的所有信息:


.net或.netcore app?,托管在linux或windows?中。netcore托管在windows.net或.netcore app?中,托管在linux或windows?中。netcore托管在windows中