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