17b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel/*
27b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel * Copyright (C) 2006 The Android Open Source Project
37b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel *
47b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel * Licensed under the Apache License, Version 2.0 (the "License");
57b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel * you may not use this file except in compliance with the License.
67b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel * You may obtain a copy of the License at
77b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel *
87b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel *      http://www.apache.org/licenses/LICENSE-2.0
97b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel *
107b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel * Unless required by applicable law or agreed to in writing, software
117b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel * distributed under the License is distributed on an "AS IS" BASIS,
127b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel * See the License for the specific language governing permissions and
147b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel * limitations under the License.
157b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel */
167b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
177b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Rousselpackage android.util;
187b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
197b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Rousselimport java.io.PrintWriter;
207b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Rousselimport java.io.StringWriter;
217b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Rousselimport java.net.UnknownHostException;
227b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
237b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel/**
247b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel * Mock Log implementation for testing on non android host.
257b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel */
267b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Rousselpublic final class Log {
277b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
287b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
297b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Priority constant for the println method; use Log.v.
307b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
317b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static final int VERBOSE = 2;
327b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
337b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
347b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Priority constant for the println method; use Log.d.
357b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
367b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static final int DEBUG = 3;
377b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
387b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
397b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Priority constant for the println method; use Log.i.
407b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
417b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static final int INFO = 4;
427b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
437b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
447b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Priority constant for the println method; use Log.w.
457b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
467b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static final int WARN = 5;
477b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
487b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
497b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Priority constant for the println method; use Log.e.
507b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
517b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static final int ERROR = 6;
527b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
537b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
547b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Priority constant for the println method.
557b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
567b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static final int ASSERT = 7;
577b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
587b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    private Log() {
597b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
607b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
617b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
627b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send a {@link #VERBOSE} log message.
637b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
647b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
657b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
667b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
677b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int v(String tag, String msg) {
687b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, VERBOSE, tag, msg);
697b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
707b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
717b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
727b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send a {@link #VERBOSE} log message and log the exception.
737b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
747b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
757b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
767b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tr An exception to log
777b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
787b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int v(String tag, String msg, Throwable tr) {
797b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, VERBOSE, tag, msg + '\n' + getStackTraceString(tr));
807b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
817b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
827b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
837b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send a {@link #DEBUG} log message.
847b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
857b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
867b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
877b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
887b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int d(String tag, String msg) {
897b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, DEBUG, tag, msg);
907b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
917b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
927b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
937b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send a {@link #DEBUG} log message and log the exception.
947b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
957b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
967b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
977b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tr An exception to log
987b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
997b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int d(String tag, String msg, Throwable tr) {
1007b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, DEBUG, tag, msg + '\n' + getStackTraceString(tr));
1017b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
1027b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
1037b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
1047b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send an {@link #INFO} log message.
1057b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
1067b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
1077b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
1087b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
1097b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int i(String tag, String msg) {
1107b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, INFO, tag, msg);
1117b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
1127b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
1137b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
1147b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send a {@link #INFO} log message and log the exception.
1157b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
1167b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
1177b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
1187b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tr An exception to log
1197b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
1207b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int i(String tag, String msg, Throwable tr) {
1217b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, INFO, tag, msg + '\n' + getStackTraceString(tr));
1227b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
1237b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
1247b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
1257b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send a {@link #WARN} log message.
1267b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
1277b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
1287b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
1297b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
1307b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int w(String tag, String msg) {
1317b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, WARN, tag, msg);
1327b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
1337b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
1347b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
1357b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send a {@link #WARN} log message and log the exception.
1367b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
1377b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
1387b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
1397b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tr An exception to log
1407b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
1417b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int w(String tag, String msg, Throwable tr) {
1427b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, WARN, tag, msg + '\n' + getStackTraceString(tr));
1437b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
1447b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
1457b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /*
1467b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send a {@link #WARN} log message and log the exception.
1477b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
1487b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
1497b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tr An exception to log
1507b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
1517b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int w(String tag, Throwable tr) {
1527b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, WARN, tag, getStackTraceString(tr));
1537b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
1547b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
1557b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
1567b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send an {@link #ERROR} log message.
1577b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
1587b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
1597b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
1607b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
1617b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int e(String tag, String msg) {
1627b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, ERROR, tag, msg);
1637b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
1647b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
1657b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
1667b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Send a {@link #ERROR} log message and log the exception.
1677b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
1687b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
1697b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
1707b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tr An exception to log
1717b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
1727b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int e(String tag, String msg, Throwable tr) {
1737b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, ERROR, tag, msg + '\n' + getStackTraceString(tr));
1747b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
1757b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
1767b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
1777b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Handy function to get a loggable stack trace from a Throwable
1787b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tr An exception to log
1797b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
1807b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static String getStackTraceString(Throwable tr) {
1817b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        if (tr == null) {
1827b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel            return "";
1837b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        }
1847b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
1857b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        // This is to reduce the amount of log spew that apps do in the non-error
1867b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        // condition of the network being unavailable.
1877b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        Throwable t = tr;
1887b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        while (t != null) {
1897b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel            if (t instanceof UnknownHostException) {
1907b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel                return "";
1917b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel            }
1927b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel            t = t.getCause();
1937b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        }
1947b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
1957b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        StringWriter sw = new StringWriter();
1967b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        PrintWriter pw = new PrintWriter(sw);
1977b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        tr.printStackTrace(pw);
1987b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        pw.flush();
1997b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return sw.toString();
2007b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
2017b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
2027b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /**
2037b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * Low-level logging call.
2047b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param priority The priority/type of this log message
2057b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param tag Used to identify the source of a log message.  It usually identifies
2067b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     *        the class or activity where the log call occurs.
2077b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @param msg The message you would like logged.
2087b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     * @return The number of bytes written.
2097b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel     */
2107b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int println(int priority, String tag, String msg) {
2117b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return println(LOG_ID_MAIN, priority, tag, msg);
2127b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
2137b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
2147b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /** @hide */ public static final int LOG_ID_MAIN = 0;
2157b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /** @hide */ public static final int LOG_ID_RADIO = 1;
2167b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /** @hide */ public static final int LOG_ID_EVENTS = 2;
2177b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /** @hide */ public static final int LOG_ID_SYSTEM = 3;
2187b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /** @hide */ public static final int LOG_ID_CRASH = 4;
2197b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel
2207b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    /** @hide */ @SuppressWarnings("unused")
2217b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    public static int println(int bufID,
2227b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel            int priority, String tag, String msg) {
2237b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel        return 0;
2247b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel    }
2257b86f7e21c70ac06129c05ed137e585a308c6fd1Yohann Roussel}
226