在C#Library-.NET核心标准中使用Serilog和appsettings.json
我正在创建一个围绕Serilog的库,我想知道是否可以使用在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
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
尽管如此?