package org.emdev.common.log; import android.util.Log; public class LogContext { private static final String SEPARATOR = "."; private final LogContext parent; private final String tag; private Boolean debugEnabled; LogContext(final String tag, final boolean debugEnabled) { this.parent = null; this.tag = tag; this.debugEnabled = debugEnabled; } private LogContext(final LogContext parent, final String tag) { this.parent = parent; this.tag = (parent != null ? parent.tag + SEPARATOR : "") + tag; } public LogContext lctx(final String tag) { return new LogContext(this, tag); } public LogContext lctx(final String tag, final boolean debugEnabled) { final LogContext lctx = new LogContext(this, tag); lctx.setDebugEnabled(debugEnabled); return lctx; } public void d(final String msg) { Log.d(tag, msg); } public void d(final String msg, final Throwable th) { Log.d(tag, msg, th); } public void i(final String msg) { Log.i(tag, msg); } public void i(final String msg, final Throwable th) { Log.i(tag, msg, th); } public void w(final String msg) { Log.w(tag, msg); } public void w(final String msg, final Throwable th) { Log.w(tag, msg, th); } public void e(final String msg) { Log.e(tag, msg); } public void e(final String msg, final Throwable th) { Log.e(tag, msg, th); } public boolean isDebugEnabled() { return debugEnabled != null ? debugEnabled.booleanValue() : parent != null ? parent.isDebugEnabled() : false; } public boolean setDebugEnabled(final boolean enabled) { return debugEnabled = enabled; } @Override public String toString() { return tag; } }