/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package org.mozilla.gecko.sync.log.writers; import android.util.Log; /** * A LogWriter that logs only if the message is as important as the specified * level. For example, if the specified level is <code>Log.WARN</code>, only * <code>warn</code> and <code>error</code> will log. */ public class LevelFilteringLogWriter extends LogWriter { protected final LogWriter inner; protected final int logLevel; public LevelFilteringLogWriter(int logLevel, LogWriter inner) { this.inner = inner; this.logLevel = logLevel; } public void close() { inner.close(); } @Override public void error(String tag, String message, Throwable error) { if (logLevel <= Log.ERROR) { inner.error(tag, message, error); } } @Override public void warn(String tag, String message, Throwable error) { if (logLevel <= Log.WARN) { inner.warn(tag, message, error); } } @Override public void info(String tag, String message, Throwable error) { if (logLevel <= Log.INFO) { inner.info(tag, message, error); } } @Override public void debug(String tag, String message, Throwable error) { if (logLevel <= Log.DEBUG) { inner.debug(tag, message, error); } } @Override public void trace(String tag, String message, Throwable error) { if (logLevel <= Log.VERBOSE) { inner.trace(tag, message, error); } } @Override public boolean shouldLogVerbose(String tag) { return logLevel <= Log.VERBOSE; } }