Home | History | Annotate | Download | only in util
      1 /*
      2  * Copyright (C) 2006 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.util;
     18 
     19 import android.annotation.UnsupportedAppUsage;
     20 import android.os.Build;
     21 
     22 /**
     23  * @hide
     24  */
     25 public final class Slog {
     26 
     27     private Slog() {
     28     }
     29 
     30     @UnsupportedAppUsage
     31     public static int v(String tag, String msg) {
     32         return Log.println_native(Log.LOG_ID_SYSTEM, Log.VERBOSE, tag, msg);
     33     }
     34 
     35     public static int v(String tag, String msg, Throwable tr) {
     36         return Log.println_native(Log.LOG_ID_SYSTEM, Log.VERBOSE, tag,
     37                 msg + '\n' + Log.getStackTraceString(tr));
     38     }
     39 
     40     @UnsupportedAppUsage
     41     public static int d(String tag, String msg) {
     42         return Log.println_native(Log.LOG_ID_SYSTEM, Log.DEBUG, tag, msg);
     43     }
     44 
     45     @UnsupportedAppUsage
     46     public static int d(String tag, String msg, Throwable tr) {
     47         return Log.println_native(Log.LOG_ID_SYSTEM, Log.DEBUG, tag,
     48                 msg + '\n' + Log.getStackTraceString(tr));
     49     }
     50 
     51     @UnsupportedAppUsage
     52     public static int i(String tag, String msg) {
     53         return Log.println_native(Log.LOG_ID_SYSTEM, Log.INFO, tag, msg);
     54     }
     55 
     56     public static int i(String tag, String msg, Throwable tr) {
     57         return Log.println_native(Log.LOG_ID_SYSTEM, Log.INFO, tag,
     58                 msg + '\n' + Log.getStackTraceString(tr));
     59     }
     60 
     61     @UnsupportedAppUsage
     62     public static int w(String tag, String msg) {
     63         return Log.println_native(Log.LOG_ID_SYSTEM, Log.WARN, tag, msg);
     64     }
     65 
     66     @UnsupportedAppUsage
     67     public static int w(String tag, String msg, Throwable tr) {
     68         return Log.println_native(Log.LOG_ID_SYSTEM, Log.WARN, tag,
     69                 msg + '\n' + Log.getStackTraceString(tr));
     70     }
     71 
     72     public static int w(String tag, Throwable tr) {
     73         return Log.println_native(Log.LOG_ID_SYSTEM, Log.WARN, tag, Log.getStackTraceString(tr));
     74     }
     75 
     76     @UnsupportedAppUsage
     77     public static int e(String tag, String msg) {
     78         return Log.println_native(Log.LOG_ID_SYSTEM, Log.ERROR, tag, msg);
     79     }
     80 
     81     @UnsupportedAppUsage
     82     public static int e(String tag, String msg, Throwable tr) {
     83         return Log.println_native(Log.LOG_ID_SYSTEM, Log.ERROR, tag,
     84                 msg + '\n' + Log.getStackTraceString(tr));
     85     }
     86 
     87     /**
     88      * Like {@link Log#wtf(String, String)}, but will never cause the caller to crash, and
     89      * will always be handled asynchronously.  Primarily for use by coding running within
     90      * the system process.
     91      */
     92     @UnsupportedAppUsage
     93     public static int wtf(String tag, String msg) {
     94         return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null, false, true);
     95     }
     96 
     97     /**
     98      * Like {@link #wtf(String, String)}, but does not output anything to the log.
     99      */
    100     public static void wtfQuiet(String tag, String msg) {
    101         Log.wtfQuiet(Log.LOG_ID_SYSTEM, tag, msg, true);
    102     }
    103 
    104     /**
    105      * Like {@link Log#wtfStack(String, String)}, but will never cause the caller to crash, and
    106      * will always be handled asynchronously.  Primarily for use by coding running within
    107      * the system process.
    108      */
    109     @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023)
    110     public static int wtfStack(String tag, String msg) {
    111         return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, null, true, true);
    112     }
    113 
    114     /**
    115      * Like {@link Log#wtf(String, Throwable)}, but will never cause the caller to crash,
    116      * and will always be handled asynchronously.  Primarily for use by coding running within
    117      * the system process.
    118      */
    119     public static int wtf(String tag, Throwable tr) {
    120         return Log.wtf(Log.LOG_ID_SYSTEM, tag, tr.getMessage(), tr, false, true);
    121     }
    122 
    123     /**
    124      * Like {@link Log#wtf(String, String, Throwable)}, but will never cause the caller to crash,
    125      * and will always be handled asynchronously.  Primarily for use by coding running within
    126      * the system process.
    127      */
    128     @UnsupportedAppUsage
    129     public static int wtf(String tag, String msg, Throwable tr) {
    130         return Log.wtf(Log.LOG_ID_SYSTEM, tag, msg, tr, false, true);
    131     }
    132 
    133     @UnsupportedAppUsage
    134     public static int println(int priority, String tag, String msg) {
    135         return Log.println_native(Log.LOG_ID_SYSTEM, priority, tag, msg);
    136     }
    137 }
    138 
    139