首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么RollingInterval.Day一直在创建新的Serilog日志文件?

为什么RollingInterval.Day一直在创建新的Serilog日志文件?
EN

Stack Overflow用户
提问于 2019-06-13 03:43:34
回答 2查看 5.5K关注 0票数 3

我正在使用Serilog作为我的程序的记录器。正在尝试生成将yyyymmdd日期附加到每个文件的滚动间隔文件。

下面的代码正是我一直使用的代码,它在4-5天的测试和开发我的UWP应用程序中起到了很好的作用。然后我想我的应用程序开始创建多个具有相同日期的文件,并将它们命名为日志-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成为静态的,从而使它具有通用性,要么需要一种方法使它只使用一个文件。任何帮助都将不胜感激

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-13 03:58:56

更新:

由于滚动文件将被弃用,因此可以使用Nuget中的Serilog.Sinks.File包来实现。滚动文件的语法为:

        Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .WriteTo.Console()
            .WriteTo.File($@"{logPath}\log-.txt", rollingInterval: RollingInterval.Day)
            .CreateLogger();

您是否安装了NuGet提供的Serilog.Sinks.RollingFile?我的理解是,Serilog.Sinks.File的滚动文件方面仍然依赖于这种依赖。

如上所述,我使用了以下内容:

        Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .WriteTo.Console()
            .WriteTo.RollingFile($@"{Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)}\Organization\{Path.GetFileNameWithoutExtension(Process.GetCurrentProcess().MainModule.FileName)}\Logs\log.txt")
            .CreateLogger();

除非大小变得太大,否则将默认为每日日志文件。

票数 4
EN

Stack Overflow用户

发布于 2021-06-19 17:14:56

也有同样的问题。在WriteTo.File()调用中添加共享参数为我解决了这个问题:

Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .WriteTo.File(@"C:\Logs\Log_.txt", shared: true, rollingInterval: RollingInterval.Day)
            .CreateLogger();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56569362

复制
相关文章

相似问题

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