Log4Cxx блокирует поток вызова во время регистрации?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Log4Cxx блокирует поток вызова во время регистрации?

Сообщение Anonymous »

Я использую log4cxx::rolling::RollingFileAppender() для входа в мое приложение C++, без каких-либо асинхронных приложений. Если я вызову ведение журнала из основного потока, будет ли основной поток заблокирован до тех пор, пока строка журнала не будет записана в файл журнала? Более того, как мне продемонстрировать такое поведение?
Если я включу асинхронные приложения, не нарушит ли это порядок ведения журнала или приведет к неожиданным задержкам в многопоточном сценарии? Меня особенно беспокоит влияние на согласованность ведения журнала и производительность. Может ли кто-нибудь дать представление о том, как асинхронное ведение журнала ведет себя в этих обстоятельствах?
Я столкнулся с критической задержкой потока в одном из потоков приема сообщений, регистратор записал ожидаемую строку журнала после задержки в 1 секунду, как следует.

Код: Выделить всё

2024-04-03 22:55:14,221 [0x00001290]     INFO   
2024-04-03 22:55:14,221 [0x00001290]     INFO   
2024-04-03 22:55:14,221 [0x00001290]    DEBUG   
2024-04-03 22:55:14,221 [0x00001290]     INFO   
2024-04-03 22:55:14,221 [0x00001290]     INFO   
2024-04-03 22:55:14,221 [0x00001290]     INFO   
2024-04-03 22:55:15,237 [0x00004a44]    DEBUG   
2024-04-03 22:55:14,237 [0x00003c5c]     INFO   
2024-04-03 22:55:15,237 [0x00000450]    DEBUG   
2024-04-03 22:55:16,018 [0x00001290]     INFO   
2024-04-03 22:55:16,018 [0x00000450]    DEBUG   
2024-04-03 22:55:16,018 [0x00003c5c]     INFO   
Здесь строка журнала «2024-04-03 22:55:14,237 [0x00003c5c]» регистрируется после «2024-04-03 22:55:15,237 [0x00004a44]», а также временная метка извлекается только с помощью log4cxx, поэтому здесь на основе другой обработки сообщений задержки. Я подозреваю, что регистратор застрял и заблокировал вызывающий поток.

Подробнее здесь: https://stackoverflow.com/questions/784 ... le-logging
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»