首页 > 解决方案 > Serilog 和 IoC 统一

问题描述

我正在尝试将 Serilog 实现到我的项目中,但似乎无法让它工作我有这个类,我在构造函数中调用 ILogger 但也尝试在那里进行手动解析。

private readonly ILogger logger;
private ILogger logger1;
    

    public EstoxController(ILogger logger1)
    {
        this.logger = IoC.Container.Resolve<ILogger>();
        this.logger1 = logger1;
    }

然后我在需要登录同一个类的方法中调用它

   public virtual ActionResult GetEstoxQueryUrl(string id, EstoxEnvironmentType environmentType)
    {
        var logger3 = IoC.Container.Resolve<ILogger>();

        logger.Information("test");
        logger1.Information("test");
        logger3.Information("testing3");

在我的容器配置中,我如下所示。

  Log.Logger = new LoggerConfiguration()
        .WriteTo.File("logtesting.txt", rollingInterval: RollingInterval.Day)
        .CreateLogger();
        IoC.Container.RegisterInstance(Log.Logger);

我似乎无法让它工作,请帮忙

标签: frameworksinversion-of-controlserilog

解决方案


看起来您需要在注册时指定服务:

IoC.Container.RegisterInstance<ILogger>(Log.Logger);

推荐阅读