#c #boost #boost-log
#c #повысить #boost-log
Вопрос:
Я искал этот сайт и Boost.В документе журнала указан способ сделать это, но пока ничего не найдено.
Документ (https://www.boost.org/doc/libs/1_74_0/libs/log/doc/html/log/detailed/sink_backends.html ) упоминается возможность установки text_stream_backend
для промывки после каждой записи журнала, записанной вызовом auto_flush(true)
.
Хотя это хорошо работает для отладки, мне было интересно, можно ли настроить пользовательское количество записей журнала, полученных core
(или sink
?) перед flush()
возникновением. Моя цель — найти баланс между полезным ведением журнала в реальном времени (я могу достаточно часто просматривать записи журнала с помощью tail -f
) и производительностью.
В качестве альтернативы, можно ли настроить размер буфера, содержащего записи журнала, чтобы после его заполнения он сбрасывался?
Комментарии:
1. То, что вы спрашиваете, не поддерживается Boost.Log.
2. @AndreySemashev Я вижу. Задокументировано ли где-нибудь поведение по умолчанию? Я хотел бы знать, что определяет, когда происходит промывка (с отключением auto_flush, конечно).
3. Поведение по умолчанию не зависит от поведения базовой библиотеки времени выполнения C / C . Увеличить. Журнал не реализует собственную буферизацию (кроме асинхронных приемников) и передает форматированное содержимое в файловый поток.
4. @AndreySemashev ах! Итак, если я правильно понимаю, что мне нужно сделать, это создать свой собственный
ofstream
, настроить его поведение и размер буфера и передать его на серверную часть сadd_stream()
?5. Хммм, теперь я понимаю, что если я использую
text_ostream_backend
вместоtext_file_backend
, я теряюscan_for_files()
иset_file_collector
. Что-то вроде необработанной сделки. Ну что ж.