summaryrefslogtreecommitdiffstats
path: root/comm/src/com/android/managedprovisioning/comm/ProvisionCommLogger.java
diff options
context:
space:
mode:
Diffstat (limited to 'comm/src/com/android/managedprovisioning/comm/ProvisionCommLogger.java')
-rw-r--r--comm/src/com/android/managedprovisioning/comm/ProvisionCommLogger.java206
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();
+ }
+ }
+}