Я хотел бы System.Diagnostics.EventSchemaTraceListener
создать неограниченный набор последовательных файлов, поэтому я инициализировал один из TraceLogRetentionOption.UnlimitedSequentialFiles
. Однако вывод трассировки был записан в один файл, а не в несколько последовательных файлов.Действительно ли настройка TraceLogRetentionOption на EventSchemaTraceListener действительно что-то делает?
Есть ли какая-либо официальная или неофициальная документация или образец кода при использовании данный конкретный вариант хранения журнала? И если это не так, мой код ниже некорректен?
Чтобы уменьшить магическую конфигурацию 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
не соблюдается, так как размер одного файла превышает максимальный 1 КБ.
Что я делаю неправильно?
Спасибо. Я видел это в документах и интерпретировал его как означающий, что при запуске нового события/данных/любого события трассировки слушатель должен создать новый файл, если существующий превышает лимит размера. Несмотря на это, я попытался записать более 1024 байт за один удар, и это не повлияло на результат. – Jeremy
После добавления слушателя и после печати вашего журнала вы можете распечатать, какой размер файла максимального размера этого слушателя? Мне любопытно узнать, действительно ли он сохраняет этот порог. – MSalmo
Вы имеете в виду значение свойства MaximumFileSize? Он по-прежнему '1024' на вызов' ts.TraceData'. Мой файл журнала сейчас составляет 9867 байт. – Jeremy