无法将我的自定义接收器与配置一起使用
Can't use my custom Sink with config
我想通过 app.config 将我的自定义接收器用于 serilog,但没有成功。
我有一个 class 库,其中 TestSink class 定义为
public class TestSink : ILogEventSink
{
public TestSink()
{
}
public void Emit(LogEvent logEvent)
{
}
}
在控制台应用程序中,我引用了这个程序集(称为 Test.dll)并添加了这个
<add key="serilog:using" value="Test"/>
我的program.cs是
class Program
{
static void Main(string[] args)
{
try
{
var log = new LoggerConfiguration()
.ReadFrom.AppSettings().CreateLogger();
Log.Logger = log;
Log.Information("");
}
catch (Exception ex)
{
int t = 0;
}
}
}
我得到的是"Configuration system failed to initialize"
我做错了什么?
谢谢
你需要在这里做两件事。
<add>
元素需要嵌套在<appSettings>
下(这里直接配置错误)
- 您需要在自定义接收器旁边提供扩展方法,以便
WriteTo.Test()
在记录器配置上可用
配置系统针对扩展方法而不是 class 名称工作,因此 Serilog 的代码和 XML 配置 API(强制)保持同步。
我想通过 app.config 将我的自定义接收器用于 serilog,但没有成功。 我有一个 class 库,其中 TestSink class 定义为
public class TestSink : ILogEventSink
{
public TestSink()
{
}
public void Emit(LogEvent logEvent)
{
}
}
在控制台应用程序中,我引用了这个程序集(称为 Test.dll)并添加了这个
<add key="serilog:using" value="Test"/>
我的program.cs是
class Program
{
static void Main(string[] args)
{
try
{
var log = new LoggerConfiguration()
.ReadFrom.AppSettings().CreateLogger();
Log.Logger = log;
Log.Information("");
}
catch (Exception ex)
{
int t = 0;
}
}
}
我得到的是"Configuration system failed to initialize"
我做错了什么? 谢谢
你需要在这里做两件事。
<add>
元素需要嵌套在<appSettings>
下(这里直接配置错误)- 您需要在自定义接收器旁边提供扩展方法,以便
WriteTo.Test()
在记录器配置上可用
配置系统针对扩展方法而不是 class 名称工作,因此 Serilog 的代码和 XML 配置 API(强制)保持同步。