【发布时间】:2019-06-12 19:43:33
【问题描述】:
我正在使用 Serilog 作为我的程序的记录器。尝试制作将 yyyymmdd 日期附加到每个文件的滚动间隔文件。
下面的代码正是我一直使用的代码,它在 4 到 5 天的时间里很好地测试和进一步开发了我的 UWP 应用程序。然后我认为我的应用程序开始创建多个具有相同日期的文件,将它们命名为 logs-yyyymmdd_01、logs-yyyymmdd_02 等。
这是在 MainPageViewModel 构造函数中
Log.Logger = new LoggerConfiguration().MinimumLevel.Debug()
.WriteTo.File(this.GetFile("logs-"), rollingInterval: RollingInterval.Day)
.CreateLogger();
public string GetFile(String FileName)
{
string s = ApplicationData.Current.LocalFolder.Path;
return s + "\\" + FileName;
}
我怀疑它多次调用构造函数,这可能是问题的一部分。但是滚动间隔应该只在新的一天创建一个新文件,对吗?因为当应用程序多次启动时,它曾经使用与今天日期对应的任何文件。所以我要么需要一种方法来使 Log.Logger 成为静态以便它是通用的,要么需要一种让它只使用一个文件的方法。任何帮助将不胜感激
【问题讨论】:
-
很确定它应该像你希望的那样附加 - 也许它达到了大小限制? serilog.sinks.file 存储库中的代码非常干净 - 建议从那里弄清楚(测试也很好地指定了各种行为)