首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在它的输出中写入重复条目

在它的输出中写入重复条目
EN

Stack Overflow用户
提问于 2019-03-24 18:19:45
回答 1查看 3.7K关注 0票数 5

我编写了一个Windows Service,它使用Serilog记录其操作。

该应用程序还使用Autofac作为依赖注入支持,序列号用于结构化日志记录。

代码语言:javascript
复制
 using Autofac;
 public class ContainerInitiator
 {
       public static IContainer BuildContainer()
       {
          var _builder = new ContainerBuilder();
          var logger = LoggerUtility.CreateLogger();
          _builder.RegisterInstance(logger).As<ILogger>().SingleInstance();
          var container = _builder.Build();
          ContainerFactory.SetContainer(container);
          return container;
        }
  }

下面是Log实用程序类

代码语言:javascript
复制
public class LoggerUtility
{
    private static string connectionString = ConfigurationManager.AppSettings["applicationName"];
    public static ILogger CreateLogger()
    {
        return GetLoggerConfiguration().CreateLogger();
    }
    private static LoggerConfiguration GetLoggerConfiguration()
    {
        var config = new LoggerConfiguration()
            .ReadFrom.AppSettings();
        config = config.
           Enrich.WithProperty("ApplicationName", connectionString).
           Enrich.WithExceptionDetails().
           Enrich.WithMachineName().
           Enrich.WithProcessId().
           Enrich.WithThreadId().
           ReadFrom.AppSettings();
        return config;
    }
}

下面是我的服务类,它记录活动

代码语言:javascript
复制
public class Engine : IEngine
{
      private readonly ILogger _logger;

      public RedistributeEngine(IContainerFactory containerFactory)
      {
           _logger = containerFactory.GetInstance<ILogger>();
      }

       public void Start()
       {
             _logger.Information("Engine started!");
       }
}

正如您在下面看到的Seq日志,它在同一时间有两个条目!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-24 20:08:20

您正在从App.Settings 二次读取配置

代码语言:javascript
复制
private static LoggerConfiguration GetLoggerConfiguration()
{
    var config = new LoggerConfiguration()
        .ReadFrom.AppSettings(); // <<<<<<<<<<<< *#*#*#*#*#*#*#*#
    config = config.
       Enrich.WithProperty("ApplicationName", connectionString).
       Enrich.WithExceptionDetails().
       Enrich.WithMachineName().
       Enrich.WithProcessId().
       Enrich.WithThreadId().
       ReadFrom.AppSettings(); // <<<<<<<<<<<< *#*#*#*#*#*#*#*#
    return config;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55326997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档