C# 企业日志库-滚动日志的编程配置
我有一个企业日志编程配置,如下所示:C# 企业日志库-滚动日志的编程配置,c#,vb.net,enterprise-library,C#,Vb.net,Enterprise Library,我有一个企业日志编程配置,如下所示: builder.ConfigureLogging() .LogToCategoryNamed("General") .WithOptions.SetAsDefaultCategory() .SendTo.RollingFile("Rolling Flat File Trace Listener") .CleanUpArchi
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("");
我没有看到滚动行为,但偶尔会看到日志文件损坏。有人有什么建议/想法吗?一些想法:
对于时间戳模式“yyyy-mm-dd”,mm是分钟。您可能想使用“yyyy-MM-dd”
RollInterval.Day
表示该文件仅在日志文件创建24小时后滚动。例如,如果第一个日志条目在周六下午4点写入,那么将创建一个新文件。如果下一个条目在星期日下午5点写入,则文件将滚动并创建一个新文件,但新文件直到星期一下午5点才有资格滚动(因为当前日志文件是在下午5点创建的)。如果要在午夜之后写入第一个日志条目时滚动,则可以使用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");
谢谢我来试一试。我不能立即接受(其他义务)。