Я создал новый обработчик журнала для JUL, который расширяет java.util.logging.Handler.Вход в обработчик журнала JUL
Есть ли стандартизованный способ, как я могу реагировать на ошибки, возникающие во время обработки LogRecord (например, LogLog в log4j)?
Просто используя JUL-Logger, вы получите другой LogRecord, который должен обрабатываться одним и тем же обработчиком.
Итак, я в основном ищу (стандартный) способ записи сообщений без создания бесконечного цикла. На данный момент я сравниваю sourceClassName, чтобы предотвратить такой цикл.
Я бы не сбивал ThreadLocal, поскольку getSourceClassName() может прибегать к stackwalking, когда не использует logp. Если вы действительно уверены, что хотите указать только один источник, вместо этого используйте getLoggerName. – jmehrens
@jmehrens: Вы абсолютно правы. Кажется, что ThreadLocals кажется более дешевым ... – Roman
Существует еще одно решение: вместо вызова getSourceClassName() я мог бы также вызвать getLoggerName(), который не проходит через стек. Это кажется самым быстрым решением (если я не ** снова ** ошибаюсь ;-)) – Roman