Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.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#Library-.NET核心标准中使用Serilog和appsettings.json_C#_Asp.net_Serilog - Fatal编程技术网

在C#Library-.NET核心标准中使用Serilog和appsettings.json

在C#Library-.NET核心标准中使用Serilog和appsettings.json,c#,asp.net,serilog,C#,Asp.net,Serilog,我正在创建一个围绕Serilog的库,我想知道是否可以使用appsettings.json 我已经安装了Microsoft.Extensions.Configuration和Microsoft.Extensions.Configuration.json,并将此代码放入Logging.cs类的构造函数中: public class Logger { private StringWriter messages { get; set; } private Serilog.Core.Lo

我正在创建一个围绕Serilog的库,我想知道是否可以使用
appsettings.json

我已经安装了
Microsoft.Extensions.Configuration
Microsoft.Extensions.Configuration.json
,并将此代码放入
Logging.cs
类的构造函数中:

public class Logger
{
    private StringWriter messages { get; set; }
    private Serilog.Core.Logger logger {get; set;}

    public Logger()
    {
        messages = new StringWriter();

        var configuration = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .Build();

        logger = new LoggerConfiguration()
            .ReadFrom.Configuration(configuration)
            .WriteTo.Console()
            .WriteTo.TextWriter(messages)
            .CreateLogger();
    }
}
我还将其放置在
csproj
中,但我不确定是否需要:

<ItemGroup>
    <None Update="appsettings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
</ItemGroup>

保存最新
除非我错了,否则我无法运行这个库来调试构造函数代码,以查看它是否成功地检索了我的
appsettings.json
配置,这就是问题所在


另一个问题是我是否可以同时使用
appsettings.json
配置和上面的
LoggerConfiguration()
?原因是我想使用
.WriteTo.TextWriter()
,它需要一个
StringWriter
变量,该变量需要在库中的其他地方访问。

在您的解决方案中,您可以将console项目添加到测试中。但一般来说,初始化配置和注入库服务是主项目。您可以将
appsettings.json
和代码配置结合起来。我做过几次,没有任何问题。谢谢你们两位,我已经在我的解决方案中添加了一个主控制台项目,并实例化了一个新的
Logger
,调试了
Logger.cs
类中的
configuration
变量,它正在检索我的
appsettings.json
,正如它应该的那样:-)我仍然想知道是否需要我放入
csproj
中的
xml
但是?在您的解决方案中,您可以将控制台项目添加到测试中。但一般来说,初始化配置和注入库服务是主项目。您可以将
appsettings.json
和代码配置结合起来。我做过几次,没有任何问题。谢谢你们两位,我已经在我的解决方案中添加了一个主控制台项目,并实例化了一个新的
Logger
,调试了
Logger.cs
类中的
configuration
变量,它正在检索我的
appsettings.json
,正如它应该的那样:-)我仍然想知道是否需要我放入
csproj
中的
xml
尽管如此?