diff options
Diffstat (limited to 'comm/src/com/android/managedprovisioning/comm/ProvisionCommLogger.java')
-rw-r--r-- | comm/src/com/android/managedprovisioning/comm/ProvisionCommLogger.java | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/comm/src/com/android/managedprovisioning/comm/ProvisionCommLogger.java b/comm/src/com/android/managedprovisioning/comm/ProvisionCommLogger.java new file mode 100644 index 00000000..4b528477 --- /dev/null +++ b/comm/src/com/android/managedprovisioning/comm/ProvisionCommLogger.java @@ -0,0 +1,206 @@ +/* + * Copyright 2015, 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.managedprovisioning.comm; + +import android.content.Context; +import android.util.Log; +import android.widget.Toast; + +/** + * Utility class to centralize the logging in the Provisioning app. + */ +public class ProvisionCommLogger { + private static final String TAG = "ManagedProvisioningComm"; + private static final boolean LOG_ENABLED = true; + + // Never commit this as true. + public static final boolean IS_DEBUG_BUILD = false; + + /** + * Log the message at DEBUG level. + */ + public static void logd(String message) { + if (LOG_ENABLED) { + Log.d(getTag(), message); + } + } + + /** + * Log the message at DEBUG level. + */ + public static void logd(String message, Throwable t) { + if (LOG_ENABLED) { + Log.d(getTag(), message, t); + } + } + + /** + * Log the message at DEBUG level. + */ + public static void logd(Throwable t) { + if (LOG_ENABLED) { + Log.d(getTag(), "", t); + } + } + + /** + * Log the message at VERBOSE level. + */ + public static void logv(String message) { + if (LOG_ENABLED) { + Log.v(getTag(), message); + } + } + + /** + * Log the message at VERBOSE level. + */ + public static void logv(String message, Throwable t) { + if (LOG_ENABLED) { + Log.v(getTag(), message, t); + } + } + + /** + * Log the message at VERBOSE level. + */ + public static void logv(Throwable t) { + if (LOG_ENABLED) { + Log.v(getTag(), "", t); + } + } + + /** + * Log the message at INFO level. + */ + public static void logi(String message) { + if (LOG_ENABLED) { + Log.i(getTag(), message); + } + } + + /** + * Log the message at INFO level. + */ + public static void logi(String message, Throwable t) { + if (LOG_ENABLED) { + Log.i(getTag(), message, t); + } + } + + /** + * Log the message at INFO level. + */ + public static void logi(Throwable t) { + if (LOG_ENABLED) { + Log.i(getTag(), "", t); + } + } + + /** + * Log the message at WARNING level. + */ + public static void logw(String message) { + if (LOG_ENABLED) { + Log.w(getTag(), message); + } + } + + /** + * Log the message at WARNING level. + */ + public static void logw(String message, Throwable t) { + if (LOG_ENABLED) { + Log.w(getTag(), message, t); + } + } + + /** + * Log the message at WARNING level. + */ + public static void logw(Throwable t) { + if (LOG_ENABLED) { + Log.w(getTag(), "", t); + } + } + + /** + * Log the message at ERROR level. + */ + public static void loge(String message) { + if (LOG_ENABLED) { + Log.e(getTag(), message); + } + } + + /** + * Log the message at ERROR level. + */ + public static void loge(String message, Throwable t) { + if (LOG_ENABLED) { + Log.e(getTag(), message, t); + } + } + + /** + * Log the message at ERROR level. + */ + public static void loge(Throwable t) { + if (LOG_ENABLED) { + Log.e(getTag(), "", t); + } + } + + /** + * Walks the stack trace to figure out where the logging call came from. + */ + static String getTag() { + if (IS_DEBUG_BUILD) { + String className = ProvisionCommLogger.class.getName(); + + StackTraceElement[] trace = Thread.currentThread().getStackTrace(); + if (trace == null) { + return TAG; + } + + boolean thisClassFound = false; + for (StackTraceElement item : trace) { + if (item.getClassName().equals(className)) { + // we are at the current class, keep eating all items from this + // class. + thisClassFound = true; + continue; + } + + if (thisClassFound) { + // This is the first instance of another class, which is most + // likely the caller class. + return TAG + String.format( + "[%s(%s): %s]", item.getFileName(), item.getLineNumber(), + item.getMethodName()); + } + } + } + return TAG; + } + + public static void toast(Context context, String toast) { + if (IS_DEBUG_BUILD) { + Toast.makeText(context, toast, Toast.LENGTH_LONG).show(); + } + } +} |