首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Serilog RollingFile

Serilog RollingFile
EN

Stack Overflow用户
提问于 2015-08-20 01:28:00
回答 8查看 80K关注 0票数 41

我试图将WriteTo.RollingFile与Serilog一起用作每天编写一个文件的如下方式:

代码语言:javascript
复制
var log = new LoggerConfiguration().WriteTo.RollingFile(
                    @"F:\logs\log-{Date}.txt",
                    LogEventLevel.Debug).CreateLogger();
            log.Information("this is a log test");

但是,在同一天,我将为每个日志条目获得一个新的日志文件

如何将Serilog配置为每天写入一个新文件,以便每天有一个日志文件?

是否有任何归档过程删除超过7天的文件?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2015-08-20 01:55:01

试着在下面:

代码语言:javascript
复制
 var log = new LoggerConfiguration()
          .MinimumLevel.Debug()
          .WriteTo.File(@"f:\log\log.txt", rollingInterval: RollingInterval.Day) 
          .CreateLogger();

日志文件名将自动log-20150819.txt等。您不需要指定date.Old文件将按照retainedFileCountLimit清除-默认值为31。

票数 61
EN

Stack Overflow用户

发布于 2018-12-15 17:06:01

WriteTo.RollingFile被否决

由于发布的答案,方法RollingFile不再可行,取而代之的是File和滚动日志的选项。

现在必须使用支持滚动的标准Serilog.Sinks.File NuGet包:

代码语言:javascript
复制
.WriteTo.File(path: @"e:\logs\skilliam.log", 
              rollingInterval: RollingInterval.Day,
              rollOnFileSizeLimit: true, 
              fileSizeLimitBytes: 123456);
票数 30
EN

Stack Overflow用户

发布于 2018-01-04 20:46:59

这里有一种在web.config 4/5应用程序中使用Serilog的方法。

在web.config中添加以下内容:

代码语言:javascript
复制
<add key="serilog:minimum-level" value="Information" />
<add key="serilog:minimum-level:override:Microsoft" value="Information" />
<add key="serilog:minimum-level:override:System" value="Information" />
<add key="serilog:using:RollingFile" value="Serilog.Sinks.RollingFile" />
<add key="serilog:write-to:RollingFile.pathFormat" value="./Logs/log-{Date}.txt" />
<add key="serilog:write-to:RollingFile.outputTemplate" value="{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] [{SourceContext}] {Message}{NewLine}{Exception}" />
<add key="serilog:write-to:RollingFile.retainedFileCountLimit" value="10" />

然后在Application_Start of global.asax中添加以下内容:

代码语言:javascript
复制
// Get application base directory
string basedir = AppDomain.CurrentDomain.BaseDirectory;

// Setup Serilog for logging
Log.Logger = new LoggerConfiguration()
            .ReadFrom.AppSettings()
            .WriteTo.RollingFile(basedir + "/Logs/log-{Date}.txt")
            .CreateLogger();
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32108148

复制
相关文章

相似问题

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