Mercurial Hosting > luan
view src/goodjava/logger/ThreadLocalAppender.java @ 1601:de5a81327d9c
fix deadlock
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 09 Apr 2021 22:39:03 -0600 |
parents | 74c534de211f |
children |
line wrap: on
line source
package goodjava.logger; public final class ThreadLocalAppender implements Appender { public volatile Appender defaultAppender; public final ThreadLocal<Appender> threadLocal = new InheritableThreadLocal<Appender>(); public ThreadLocalAppender(Appender defaultAppender) { this.defaultAppender = defaultAppender; } public void append(LoggingEvent event) { Appender appender = threadLocal.get(); if( appender == null ) appender = defaultAppender; appender.append(event); } public void close() { defaultAppender.close(); } }