Serves as base class for named logger implementation. More significantly, this class establishes deserialization behavior. @author Ceki Gulcu @see #readResolve @since 1.5.3
| 39 | * @since 1.5.3 |
| 40 | */ |
| 41 | abstract class NamedLoggerBase implements Logger, Serializable { |
| 42 | |
| 43 | private static final long serialVersionUID = 7535258609338176893L; |
| 44 | |
| 45 | protected String name; |
| 46 | |
| 47 | public String getName() { |
| 48 | return name; |
| 49 | } |
| 50 | |
| 51 | /** |
| 52 | * Replace this instance with a homonymous (same name) logger returned |
| 53 | * by LoggerFactory. Note that this method is only called during |
| 54 | * deserialization. |
| 55 | * |
| 56 | * <p> |
| 57 | * This approach will work well if the desired ILoggerFactory is the one |
| 58 | * referenced by LoggerFactory. However, if the user manages its logger hierarchy |
| 59 | * through a different (non-static) mechanism, e.g. dependency injection, then |
| 60 | * this approach would be mostly counterproductive. |
| 61 | * |
| 62 | * @return logger with same name as returned by LoggerFactory |
| 63 | * @throws ObjectStreamException |
| 64 | */ |
| 65 | protected Object readResolve() throws ObjectStreamException { |
| 66 | // using getName() instead of this.name works even for |
| 67 | // NOPLogger |
| 68 | return LoggerFactory.getLogger(getName()); |
| 69 | } |
| 70 | |
| 71 | } |
nothing calls this directly
no outgoing calls
no test coverage detected