Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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# 从appSettings.json配置Serilog时出现问题_C#_.net Core_Console Application_Serilog - Fatal编程技术网

C# 从appSettings.json配置Serilog时出现问题

C# 从appSettings.json配置Serilog时出现问题,c#,.net-core,console-application,serilog,C#,.net Core,Console Application,Serilog,我有一个关于appSettings.json配置Serilog的问题。 我的项目是一个基于.NETCore3.0的控制台应用程序。 我试图设置Serilog,以便将日志信息写入控制台和日志文件 当我在代码本身中配置所有内容时,所有内容都像预期的那样工作 但是当我尝试从appsettings.json文件导入Serilog配置设置时,我遇到了一个问题,我的ConsoleSink工作正常,但我的FileSink工作不正常 下面是我在appsettings.json中写的内容: { "Serilo

我有一个关于appSettings.json配置Serilog的问题。 我的项目是一个基于.NETCore3.0的控制台应用程序。 我试图设置Serilog,以便将日志信息写入控制台和日志文件

当我在代码本身中配置所有内容时,所有内容都像预期的那样工作

但是当我尝试从appsettings.json文件导入Serilog配置设置时,我遇到了一个问题,我的ConsoleSink工作正常,但我的FileSink工作不正常

下面是我在appsettings.json中写的内容:

{
  "Serilog": {
    "Using": [ "Serilog.Sinks.File", "Serilog.Sinks.Console" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      {
        "Name": "File",
        "Args": { "pathFormat": "Xlog.txt" }
      },
      { "Name": "Console" }
    ]
  }
}
这是相关代码:

  IConfiguration configSerilog = new ConfigurationBuilder()
                .AddJsonFile("appsettings.json", true, true)
                .Build();


            log = new LoggerConfiguration()
                 .ReadFrom.Configuration(configSerilog)
                 .CreateLogger();


            log.Information("Initializing Serilog....");
我的“测试日志消息”显示在我的控制台窗口中,但我没有得到日志文件

正如我所提到的,当我在代码中配置Serilog时,它是有效的,而不是通过appsettings。 因此,我确实拥有创建文件的适当访问权限


有什么想法或提示吗?

请确保
appsettings.json
属性“复制到输出目录”的文件属性为“始终复制”或“如果更新,则复制”

并按如下所示更新您的配置(
Args
中的
pathFormat
应为
path


搜索
Serilog SelfLog
和/或使用Sysinternals Filemon
{
  "Serilog": {
    "Using": [ "Serilog.Sinks.File", "Serilog.Sinks.Console" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      {
        "Name": "File",
        "Args": { "path": "Xlog.txt" }
      },
      { "Name": "Console" }
    ]
  }
}