blob: c679ac2698c5a8773f4c2c96856c6c328149f2e3 [file] [log] [blame]
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.deskclock;
import android.os.Build;
import android.util.Log;
public class LogUtils {
/**
* Default logger used for generic logging, i.eTAG. when a specific log tag isn't specified.
*/
private final static Logger DEFAULT_LOGGER = new Logger("AlarmClock");
public static void v(String message, Object... args) {
DEFAULT_LOGGER.v(message, args);
}
public static void d(String message, Object... args) {
DEFAULT_LOGGER.d(message, args);
}
public static void i(String message, Object... args) {
DEFAULT_LOGGER.i(message, args);
}
public static void w(String message, Object... args) {
DEFAULT_LOGGER.w(message, args);
}
public static void e(String message, Object... args) {
DEFAULT_LOGGER.e(message, args);
}
public static void e(String message, Throwable e) {
DEFAULT_LOGGER.e(message, e);
}
public static void wtf(String message, Object... args) {
DEFAULT_LOGGER.wtf(message, args);
}
public static void wtf(Throwable e) {
DEFAULT_LOGGER.wtf(e);
}
public final static class Logger {
/**
* Log everything for debug builds or if running on a dev device.
*/
public final static boolean DEBUG = BuildConfig.DEBUG
|| "eng".equals(Build.TYPE)
|| "userdebug".equals(Build.TYPE);
public final String logTag;
public Logger(String logTag) {
this.logTag = logTag;
}
public boolean isVerboseLoggable() { return DEBUG || Log.isLoggable(logTag, Log.VERBOSE); }
public boolean isDebugLoggable() { return DEBUG || Log.isLoggable(logTag, Log.DEBUG); }
public boolean isInfoLoggable() { return DEBUG || Log.isLoggable(logTag, Log.INFO); }
public boolean isWarnLoggable() { return DEBUG || Log.isLoggable(logTag, Log.WARN); }
public boolean isErrorLoggable() { return DEBUG || Log.isLoggable(logTag, Log.ERROR); }
public boolean isWtfLoggable() { return DEBUG || Log.isLoggable(logTag, Log.ASSERT); }
public void v(String message, Object... args) {
if (isVerboseLoggable()) {
Log.v(logTag, args == null || args.length == 0
? message : String.format(message, args));
}
}
public void d(String message, Object... args) {
if (isDebugLoggable()) {
Log.d(logTag, args == null || args.length == 0 ? message
: String.format(message, args));
}
}
public void i(String message, Object... args) {
if (isInfoLoggable()) {
Log.i(logTag, args == null || args.length == 0 ? message
: String.format(message, args));
}
}
public void w(String message, Object... args) {
if (isWarnLoggable()) {
Log.w(logTag, args == null || args.length == 0 ? message
: String.format(message, args));
}
}
public void e(String message, Object... args) {
if (isErrorLoggable()) {
Log.e(logTag, args == null || args.length == 0 ? message
: String.format(message, args));
}
}
public void e(String message, Throwable e) {
if (isErrorLoggable()) {
Log.e(logTag, message, e);
}
}
public void wtf(String message, Object... args) {
if (isWtfLoggable()) {
Log.wtf(logTag, args == null || args.length == 0 ? message
: String.format(message, args));
}
}
public void wtf(Throwable e) {
if (isWtfLoggable()) {
Log.wtf(logTag, e);
}
}
}
}