0

我有一个 Enterprise Logging 编程配置,如下所示:

        builder.ConfigureLogging()
               .LogToCategoryNamed("General")
               .WithOptions.SetAsDefaultCategory()
               .SendTo.RollingFile("Rolling Flat File Trace Listener")
               .CleanUpArchivedFilesWhenMoreThan(7)
               .WhenRollFileExists(RollFileExistsBehavior.Increment)
               .WithTraceOptions(TraceOptions.Timestamp)
               .RollEvery(RollInterval.Day)
               .UseTimeStampPattern("yyyy-mm-dd")
               .ToFile(logPath)
               .FormatWith(
                   new FormatterBuilder()
                       .TextFormatterNamed("Text Formatter")
                       .UsingTemplate("{timestamp}:{title}:{message}"))
               .WithFooter("").WithHeader("");

而且我没有看到滚动行为,但偶尔会看到日志文件损坏。有人有任何建议/想法吗?

4

1 回答 1

0

一些想法:

对于时间戳模式“yyyy-mm-dd”,mm 是分钟。您可能想使用“yyyy-MM-dd”。

RollInterval.Day表示该文件只会在创建日志文件后 24 小时滚动。例如,如果第一个 LogEntry 是在星期六下午 4 点写入的,那么将创建一个新文件。如果下一个条目是在周日下午 5 点写入的,那么文件将滚动并创建一个新文件,但新文件直到周一下午 5 点才有资格滚动(因为当前日志文件是在下午 5 点创建的)。如果您想在 Midnight 之后写入第一个 LogEntry 时滚动,那么您可以使用RollInterval.Midnight.

你的代码对我来说似乎工作正常。

您可能还想创建一个错误特殊源来记录块中可能发生的任何错误:

var builder = new ConfigurationSourceBuilder();
builder.ConfigureLogging()
                .LogToCategoryNamed("General")
                .WithOptions.SetAsDefaultCategory()
                .SendTo.RollingFile("Rolling Flat File Trace Listener")
                .CleanUpArchivedFilesWhenMoreThan(7)
                .WhenRollFileExists(RollFileExistsBehavior.Increment)
                .WithTraceOptions(TraceOptions.Timestamp)
                .RollEvery(RollInterval.Day)
                .UseTimeStampPattern("yyyy-MM-dd")
                .ToFile(logPath)
                .FormatWith(
                    new FormatterBuilder()
                        .TextFormatterNamed("Text Formatter")
                        .UsingTemplate("{timestamp}:{title}:{message}"))
                .WithFooter("").WithHeader("")
                .SpecialSources
                    .LoggingErrorsAndWarningsCategory
                    .SendTo.FlatFile("Flat File Trace Listener")
                    .ToFile("errors.log");
于 2013-06-14T03:50:05.647 回答