• Serilog如何将错误写入单独的日志文件并实现自动清理
  • 发布于 2个月前
  • 429 热度
    0 评论
以下 Serilog 日志配置代码会将日志写入应用目录下的 logs 文件夹,并分为全量文件和错误日志文件。全量日志文件放在 logs 文件夹下,Debug 模式下会记录全部的日志输出。每小时生成一个文件,超过 100 个文件时自动清理旧文件。错误日志文件放在 logs 文件夹的 errors 子文件夹下,只包含 Warning 及以上的日志记录。每天生成一个文件,超过 100 个文件时自动清理旧文件。
private static void CreateLogger()
{
    Log.Logger = new LoggerConfiguration()
#if DEBUG
.MinimumLevel.Debug()
#else
.MinimumLevel.Information()
#endif
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.File(
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "logs", "log-.txt"),
rollingInterval: RollingInterval.Hour,
retainedFileCountLimit: 100
)
.WriteTo.Logger(
l =>
l.Filter.ByIncludingOnly(e => e.Level >= LogEventLevel.Warning)
.WriteTo.File(
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "logs", "errors", "log-.txt"),
rollingInterval: RollingInterval.Day,
retainedFileCountLimit: 100
)
)
#if DEBUG
.WriteTo.Async(c => c.Console())
#endif
.CreateLogger();
}

用户评论