gpt4 book ai didi

c# - Serilog 在其输出中写入重复的条目

转载 作者:行者123 更新时间:2023-12-04 13:01:48 25 4
gpt4 key购买 nike

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

该应用程序还使用 Autofac用于依赖注入(inject)支持和 Seq用于结构化日志记录。

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

这是日志实用程序类
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;
}
}

这是我的服务类,它记录事件
public class Engine : IEngine
{
private readonly ILogger _logger;

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

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

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

enter image description here

最佳答案

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

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

关于c# - Serilog 在其输出中写入重复的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55326997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com