无法使用我的自定义接收器配置

时间:2016-06-03 08:52:20

标签: serilog

我想通过app.config将我的自定义接收器用于serilog,但没有运气。 我有一个类库,其TestSink类定义为

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;
        }
    }
}

我得到的是“配置系统无法初始化”

enter image description here

我做错了什么? 感谢

1 个答案:

答案 0 :(得分:1)

你需要在这里做两件事。

  1. <add>元素需要嵌套在<appSettings>下(此处存在立即配置错误)
  2. 您需要在自定义接收器旁边提供扩展方法,以便在记录器配置中可以使用WriteTo.Test()
  3. 配置系统对扩展方法而不是类名进行操作,以便Serilog的代码和XML配置API(强制)保持同步。