Как понять о свойстве AutoFlush LogSource - PullRequest
0 голосов
/ 20 марта 2012

У меня есть категория "MyCategory", и ее свойство AutoFlush имеет значение true, а прослушиватель трассировки - это прослушиватель трассировки плоских файлов. Я создаю LogEntry и пишу его с категорией. Лог будет успешно записан в файл.

Если я изменю свойство AutoFlush на false и напишу LogEntry, Я не могу понять, почему оно не записывается в файл LogSource. (когда AutoFlush = false)

1 Ответ

4 голосов
/ 20 марта 2012

В потоках a Flush () заставляет поток очищать свой буфер для нижележащего объекта.например, файл!Таким образом, ваш логгер будет автоматически очищаться после каждого LogEntry, чтобы вы могли сразу увидеть результат в файле.

Поток очистит свой буфер, когда:

  • Буфер заполнен
  • Поток располагает
  • ...

Добавление:

LogSource хранит список LogEntries с Capacity х .Если список LogEntries> x => Записать в файл.Это буферизация с AutoFlush = false.Он будет записывать, только когда буфер заполнен, вызывая Flush или LogSource dispose.

AutoFlush = true; вызывает Flush() после каждой вставки LogEntry для принудительной записи в файл.Не буферизуйтесь, если хотите так назвать.Это означает, что вы увидите каждую запись сразу же, кроме как после x Записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...