gpt4 book ai didi

c# - Serilog SelfLog 到文件错误

转载 作者:行者123 更新时间:2023-12-05 00:40:27 25 4
gpt4 key购买 nike

我需要将 seri 记录器的 self 记录启用到文本文件。我的配置如下;

__serilogLogger = new LoggerConfiguration()
.Enrich.WithProperty("ApplicationIPv4", _ipv4)
.Enrich.WithProperty("ApplicationIPv6", _ipv6)
.WriteTo.MSSqlServer(connectionString, tableName /*, columnOptions: columnOptions*/)
.WriteTo
.Seq(ConfigurationManager.AppSettings["SerilogServer"])
.CreateLogger();

var file = File.CreateText("Self.log");
Serilog.Debugging.SelfLog.Enable(TextWriter.Synchronized(file));

但是运行应用程序时文件访问错误。请在下面找到错误详细信息;

Additional information: The process cannot access the file 'C:\Program Files (x86)\IIS Express\Self.log' because it is being used by another process.

谁能帮我解决这个问题

最佳答案

试试

Serilog.Debugging.SelfLog.Enable(msg => File.AppendAllText (serilogSelfLogFilePath, msg));

用于写入文件的非锁定方式。 serilogSelfLogFilePath 是您要使用的文件的有效路径 string

当您根据 https://github.com/serilog/serilog/issues/864 关闭其他日志时,不要忘记 Log.CloseAndFlush();不然写不出来

注意,如果您使用的是异步接收器,那么当不同的线程争用写入该文件时,如果它变得忙碌,您最终会得到一个异常。

关于c# - Serilog SelfLog 到文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48162875/

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