Подтвердить что ты не робот

Должен ли журнал всегда быть окончательным и статическим?

Доступ к классам возможен из многих потоков. Должен быть журнал в этом случае также является окончательным и статическим? Спасибо.

4b9b3361

Ответ 1

Все основные пакеты регистрации java (java.util.logging, log4j и т.д.) синхронизированы и потокобезопасны. Стандартный шаблон журнала private final static для каждого класса хорош, даже если класс вызывается из нескольких потоков.

Ответ 2

Да, журнал должен быть статическим и окончательным. Также предпочтительно закрытый. Для каждого класса должен быть только один экземпляр журнала, а также, если вы не будете динамически изменять предпочтения журнала, лучше сделать его окончательным.

Logger безопасен потоком, и вам не нужно беспокоиться о потоковом использовании.

Ответ 3

Создание конечного и/или статичного журнала не повлияет на безопасность потока при использовании регистратора. Если экземпляр регистратора используется из нескольких потоков, убедитесь, что вы используете потокобезопасный журнал.

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