Что представляет собой «BufferSize» в приложении log4j? - PullRequest
2 голосов
/ 15 ноября 2011

В org.apache.log4j Класс AsyncAppender public void setBufferSize (int size)

Sets the number of messages allowed in the event 
 buffer before the calling thread is blocked (if blocking is true) 
or until messages are summarized and discarded. Changing the size 
will not affect messages already in the buffer. 

Я настроил 10000. Но файл продолжает расти и после 10К! В чем причина?

1 Ответ

3 голосов
/ 15 ноября 2011

Когда что-то регистрируется, оно добавляется в буфер событий в памяти. Сообщения в этом буфере событий затем записываются на диск.

Если вы записываете вещи быстрее, чем они могут быть записаны на диск, буфер событий заполняется. В вашем случае, если буфер событий достигает 10 000 сообщений, механизм ведения журнала принимает меры для сохранения его на уровне 10 000 сообщений или ниже: либо блокирование до записи буфера на диск, либо удаление сообщений журнала.

...