Task #4946
closed
[basis][log] Ведение лога для нескольких логгеров
Added by Sergey Smolov over 10 years ago.
Updated over 10 years ago.
Description
В случае, если в Engine используется стандартный логгер, то не нужно создавать для него отдельный *.lck-файл, который сохраняется даже после завершения работы Retrascope.
Сейчас единичный пуск инструмента порождает большое количество *.lck-файлов, не несущих никакой полезной информации.
Все стандартные логгеры должны помещать свои сообщения в общий log-файл, если выставлена соответствующая опция логирования.
Если в Engine используется нестандартный логгер, то сообщения логгера можно сохранять в отдельный файл.
Это вызвано тем, что сейчас все логеры проходят через одну и ту же процедуру конфигурирования (соответственно, все они пытаются заблокировать файл с одним именем).
Когда я создавал функцию конфигурирования, я подразумевал, что выполняться она будет только для корневого логера.
Кстати, предлагаю такие изменения архитектуры выносить на обсуждение перед реализацией.
Среди других изменений логирования с момента его введения хочу также обратить внимание на следующее:
название поля private static final Logger LOGGER должно писаться строчными буквами (в соответствии с гугловским стандартом оформления кода);
private static class ShutdownHook extends Thread
{
@Override
public void run() {
LOGGER.log(Level.INFO, "Retrascope is shutting down");
}
}
Нет никаких гарантий, что это сообщение будет передано какому-либо обработчику, потому что при выключении программы автоматически вызывается LogManager.reset().
Ещё предлагаю для единообразия все записи в лог обрамлять вызовом isLoggable (но это уже не принципиально).
- Status changed from New to Resolved
Конфигурируется только корневой логер.
Добавлена опция --log (не проверена).
Писать каждый раз isLoggable плохо.
Igor Melnichenko wrote:
Кстати, предлагаю такие изменения архитектуры выносить на обсуждение перед реализацией.
Архитектура не менялась.
- Status changed from Resolved to Closed
Also available in: Atom
PDF