【发布时间】:2015-03-11 05:24:44
【问题描述】:
我希望System.Diagnostics.EventSchemaTraceListener 生成一组无限的顺序文件,所以我用TraceLogRetentionOption.UnlimitedSequentialFiles 初始化了一个。但是,跟踪输出被写入单个文件而不是多个连续文件。
是否有任何关于使用此特定日志保留选项的官方或非官方文档或代码示例?如果做不到这一点,我下面的代码是否不正确?
为了减少魔法配置 woo,我将在代码中完成所有操作。这是我认为它应该被初始化的方式:
TraceSource ts = new TraceSource("My trace source", SourceLevels.All);
SourceSwitch sourceSwitch = new SourceSwitch("SourceSwitch", "Verbose");
ts.Switch = sourceSwitch;
ts.Listeners.Add(new System.Diagnostics.EventSchemaTraceListener(
"event.log", // "file name"
"eventschema", // "name"
1024, // buffer in bytes - I set this to be <= maximum file size
TraceLogRetentionOption.UnlimitedSequentialFiles,
1024); // max. file size in bytes - very small to illustrate the concept
然后我登录了几次:
for (var i = 0; i < aFew; i++) {
ts.TraceData(
TraceEventType.Information, // trace level
100, // event ID: arbitrary integer
"some data to output");
}
我观察到单个 event.log 文件已创建并包含所有预期信息,但 TraceLogRetentionOption 不受尊重,因为单个文件的大小超过了指定的最大 1kB。
我做错了什么?
【问题讨论】:
标签: c# trace tracesource