Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net framework 4.7配置日志记录级别,不起作用_C#_Asp.net_Azure Webjobs - Fatal编程技术网

C# asp.net framework 4.7配置日志记录级别,不起作用

C# asp.net framework 4.7配置日志记录级别,不起作用,c#,asp.net,azure-webjobs,C#,Asp.net,Azure Webjobs,我的web作业未遵循My host.json中的日志级别配置。它是使用.NETFramework 4.7编写的。下面代码的预期结果是没有日志记录,相反,我根据下面的屏幕截图获得了日志记录。有什么可以提供关于如何解决这个问题的指导吗?是否需要添加其他配置/启动代码 host.json { "version": "2.0", "logging": { "fileLoggingMode": "a

我的web作业未遵循My host.json中的日志级别配置。它是使用.NETFramework 4.7编写的。下面代码的预期结果是没有日志记录,相反,我根据下面的屏幕截图获得了日志记录。有什么可以提供关于如何解决这个问题的指导吗?是否需要添加其他配置/启动代码

host.json

{
  "version": "2.0",
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "Functions.Test": "None",
      "default": "None"
    }
  }
}
C#网络作业代码

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
变量。因此,不应用这些设置,并使用默认的
信息
logLevel


我们需要将此配置提供给
HostBuilder
,看起来可以使用
HostBuilder
ConfigureAppConfiguration
方法完成。请看一看,它有一个如何使用此方法的示例。

感谢您提供的信息,不幸的是,我在使用此代码时得到了相同的结果。还有其他想法吗?ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12;var builder=新主机生成器();builder.ConfigureAppConfiguration(cb=>cb/.SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile(“host.json”));一件事是要仔细检查它是否实际找到了
host.json
,您可以在
AddJsonFile
methodI中指定
可选:false
,以确认host.json文件正在打开。以及设置可选:false。您还有其他建议吗?我们可以尝试将
host.json
重命名为
appsettings.json
,因为
ConfigureWebJobs
默认情况下会添加此配置文件。另外,我们可以尝试更改
ConfigureWebJobs
ConfigureAppConfiguration
的顺序,看起来
ConfigureWebJobs
应该先执行。请看一下这个问题:如果我添加b.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);行配置日志记录方法,然后获取跟踪级别日志记录。我已确认正在加载host.json文件,因此我的理论是,host.json文件未应用于.net Framework 4.7 web作业,或者host.json文件的格式不正确。有人有什么想法/建议吗?请尝试将
fileLoggingMode
设置为
never
。参考:不幸的是,这没有什么区别。