Can';在Azure日志流中看不到日志
在我的Web Api应用程序中,我有控制器: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
[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中