Task #4946
closed[basis][log] Ведение лога для нескольких логгеров
0%
Description
В случае, если в Engine используется стандартный логгер, то не нужно создавать для него отдельный *.lck-файл, который сохраняется даже после завершения работы Retrascope.
Сейчас единичный пуск инструмента порождает большое количество *.lck-файлов, не несущих никакой полезной информации.
Все стандартные логгеры должны помещать свои сообщения в общий log-файл, если выставлена соответствующая опция логирования.
Если в Engine используется нестандартный логгер, то сообщения логгера можно сохранять в отдельный файл.
Updated by Igor Melnichenko over 10 years ago
Это вызвано тем, что сейчас все логеры проходят через одну и ту же процедуру конфигурирования (соответственно, все они пытаются заблокировать файл с одним именем).
Когда я создавал функцию конфигурирования, я подразумевал, что выполняться она будет только для корневого логера.
Updated by Igor Melnichenko over 10 years ago
Кстати, предлагаю такие изменения архитектуры выносить на обсуждение перед реализацией.
Updated by Igor Melnichenko over 10 years ago
Среди других изменений логирования с момента его введения хочу также обратить внимание на следующее:
название поля 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 (но это уже не принципиально).
Updated by Alexander Kamkin over 10 years ago
- Status changed from New to Resolved
Конфигурируется только корневой логер.
Добавлена опция --log (не проверена).
Писать каждый раз isLoggable плохо.
Updated by Alexander Kamkin over 10 years ago
Igor Melnichenko wrote:
Кстати, предлагаю такие изменения архитектуры выносить на обсуждение перед реализацией.
Архитектура не менялась.
Updated by Alexander Kamkin over 10 years ago
- Status changed from Resolved to Closed