c# - asp.net framework 4.7配置日志级别,不工作
问题描述
我的 Web 作业不遵守我的 host.json 中的日志记录级别配置。它是使用 .NET 框架 4.7 编写的。以下代码的预期结果是没有记录,相反,我根据下面的屏幕截图记录了一个。任何人都可以提供有关如何解决此问题的指导吗?我需要添加额外的配置/启动代码吗?
主机.json
{
"version": "2.0",
"logging": {
"fileLoggingMode": "always",
"logLevel": {
"Functions.Test": "None",
"default": "None"
}
}
}
C# Web 作业代码
public static void Main()
{
var config = new Microsoft.Extensions.Configuration.ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("host.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
var builder = new HostBuilder();
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddTimers();
b.AddBuiltInBindings();
});
builder.ConfigureLogging((context, b) =>
{
b.AddConsole();
});
var host = builder.Build();
using (host)
{
var jobHost = host.Services.GetService(typeof(IJobHost)) as JobHost;
jobHost.CallAsync("Test").GetAwaiter().GetResult();
}
}
}
public class Functions
{
[NoAutomaticTrigger]
public static void Test(ILogger logger)
{
logger.LogCritical("LogCritical");
logger.LogDebug("LogDebug");
logger.LogError("LogError");
logger.LogInformation("LogInformation");
logger.LogTrace("LogTrace");
logger.LogWarning("LogWarning");
Thread.Sleep(1000 * 10);
}
}
}
解决方案
感谢您分享您的代码。
在我看来,在第一条语句中正在构建一个配置对象var config = new Microsoft.Extensions.Configuration.ConfigurationBuilder()...
,但是,稍后在代码中,config
在主机创建和配置时不使用这个变量。因此,不会应用这些设置并使用默认Information
logLevel。
我们需要将此配置提供给HostBuilder
,看起来可以使用HostBuilder
'ConfigureAppConfiguration
方法完成。请看一下这个问题,它有一个如何使用这种方法的例子。
推荐阅读
- matplotlib - 在 Matplotlib 中交叉反子午线 180°
- python - 如何在 python 的 x 轴上有两个不同的线性刻度?
- string - Arduino - 无法连接到 wifi
- python - 如何在同一行读取日期和时间?
- c# - 与模型中的新属性的关系
- python-3.x - 根据子元素值删除父节点
- python - 无法使用 Visual Studio 代码和 pymongo 连接到我的 mongodb
- wcf - WCF 和 Azure 函数有什么区别?
- flutter - Flutter 将整数值从一页发送到另一页
- css - CSS 中没有值的 `!important` 是什么意思?