/*
|
* Copyright (C) 2006 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 android.util;
|
|
import java.io.PrintWriter;
|
import java.io.StringWriter;
|
import java.net.UnknownHostException;
|
|
/**
|
* Mock Log implementation for testing on non android host.
|
*/
|
public final class Log {
|
|
/**
|
* Priority constant for the println method; use Log.v.
|
*/
|
public static final int VERBOSE = 2;
|
|
/**
|
* Priority constant for the println method; use Log.d.
|
*/
|
public static final int DEBUG = 3;
|
|
/**
|
* Priority constant for the println method; use Log.i.
|
*/
|
public static final int INFO = 4;
|
|
/**
|
* Priority constant for the println method; use Log.w.
|
*/
|
public static final int WARN = 5;
|
|
/**
|
* Priority constant for the println method; use Log.e.
|
*/
|
public static final int ERROR = 6;
|
|
/**
|
* Priority constant for the println method.
|
*/
|
public static final int ASSERT = 7;
|
|
private Log() {
|
}
|
|
/**
|
* Send a {@link #VERBOSE} log message.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
*/
|
public static int v(String tag, String msg) {
|
return println(LOG_ID_MAIN, VERBOSE, tag, msg);
|
}
|
|
/**
|
* Send a {@link #VERBOSE} log message and log the exception.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
* @param tr An exception to log
|
*/
|
public static int v(String tag, String msg, Throwable tr) {
|
return println(LOG_ID_MAIN, VERBOSE, tag, msg + '\n' + getStackTraceString(tr));
|
}
|
|
/**
|
* Send a {@link #DEBUG} log message.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
*/
|
public static int d(String tag, String msg) {
|
return println(LOG_ID_MAIN, DEBUG, tag, msg);
|
}
|
|
/**
|
* Send a {@link #DEBUG} log message and log the exception.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
* @param tr An exception to log
|
*/
|
public static int d(String tag, String msg, Throwable tr) {
|
return println(LOG_ID_MAIN, DEBUG, tag, msg + '\n' + getStackTraceString(tr));
|
}
|
|
/**
|
* Send an {@link #INFO} log message.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
*/
|
public static int i(String tag, String msg) {
|
return println(LOG_ID_MAIN, INFO, tag, msg);
|
}
|
|
/**
|
* Send a {@link #INFO} log message and log the exception.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
* @param tr An exception to log
|
*/
|
public static int i(String tag, String msg, Throwable tr) {
|
return println(LOG_ID_MAIN, INFO, tag, msg + '\n' + getStackTraceString(tr));
|
}
|
|
/**
|
* Send a {@link #WARN} log message.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
*/
|
public static int w(String tag, String msg) {
|
return println(LOG_ID_MAIN, WARN, tag, msg);
|
}
|
|
/**
|
* Send a {@link #WARN} log message and log the exception.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
* @param tr An exception to log
|
*/
|
public static int w(String tag, String msg, Throwable tr) {
|
return println(LOG_ID_MAIN, WARN, tag, msg + '\n' + getStackTraceString(tr));
|
}
|
|
/*
|
* Send a {@link #WARN} log message and log the exception.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param tr An exception to log
|
*/
|
public static int w(String tag, Throwable tr) {
|
return println(LOG_ID_MAIN, WARN, tag, getStackTraceString(tr));
|
}
|
|
/**
|
* Send an {@link #ERROR} log message.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
*/
|
public static int e(String tag, String msg) {
|
return println(LOG_ID_MAIN, ERROR, tag, msg);
|
}
|
|
/**
|
* Send a {@link #ERROR} log message and log the exception.
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
* @param tr An exception to log
|
*/
|
public static int e(String tag, String msg, Throwable tr) {
|
return println(LOG_ID_MAIN, ERROR, tag, msg + '\n' + getStackTraceString(tr));
|
}
|
|
/**
|
* Handy function to get a loggable stack trace from a Throwable
|
* @param tr An exception to log
|
*/
|
public static String getStackTraceString(Throwable tr) {
|
if (tr == null) {
|
return "";
|
}
|
|
// This is to reduce the amount of log spew that apps do in the non-error
|
// condition of the network being unavailable.
|
Throwable t = tr;
|
while (t != null) {
|
if (t instanceof UnknownHostException) {
|
return "";
|
}
|
t = t.getCause();
|
}
|
|
StringWriter sw = new StringWriter();
|
PrintWriter pw = new PrintWriter(sw);
|
tr.printStackTrace(pw);
|
pw.flush();
|
return sw.toString();
|
}
|
|
/**
|
* Low-level logging call.
|
* @param priority The priority/type of this log message
|
* @param tag Used to identify the source of a log message. It usually identifies
|
* the class or activity where the log call occurs.
|
* @param msg The message you would like logged.
|
* @return The number of bytes written.
|
*/
|
public static int println(int priority, String tag, String msg) {
|
return println(LOG_ID_MAIN, priority, tag, msg);
|
}
|
|
/** @hide */ public static final int LOG_ID_MAIN = 0;
|
/** @hide */ public static final int LOG_ID_RADIO = 1;
|
/** @hide */ public static final int LOG_ID_EVENTS = 2;
|
/** @hide */ public static final int LOG_ID_SYSTEM = 3;
|
/** @hide */ public static final int LOG_ID_CRASH = 4;
|
|
/** @hide */ @SuppressWarnings("unused")
|
public static int println(int bufID,
|
int priority, String tag, String msg) {
|
return 0;
|
}
|
}
|