LogUtils.java revision 310210dab3e97b1defe0870ecbc25b1451e90392
1cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen/* 2310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen * Copyright (C) 2016 The Android Open Source Project 3cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * 4cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * Licensed under the Apache License, Version 2.0 (the "License"); 5cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * you may not use this file except in compliance with the License. 6cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * You may obtain a copy of the License at 7cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * 8cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * http://www.apache.org/licenses/LICENSE-2.0 9cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * 10cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * Unless required by applicable law or agreed to in writing, software 11cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * distributed under the License is distributed on an "AS IS" BASIS, 12cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * See the License for the specific language governing permissions and 14cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen * limitations under the License. 15cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen */ 16cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 17cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassenpackage com.android.deskclock; 18cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 19cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassenimport android.os.Build; 20cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassenimport android.util.Log; 21cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 22cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassenpublic class LogUtils { 23cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 24310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen /** 25310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen * Default logger used for generic logging, i.eTAG. when a specific log tag isn't specified. 26310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen */ 27310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen private final static Logger DEFAULT_LOGGER = new Logger("AlarmClock"); 28cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 29cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen public static void v(String message, Object... args) { 30310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen DEFAULT_LOGGER.v(message, args); 31cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 32cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 33310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public static void d(String message, Object... args) { 34310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen DEFAULT_LOGGER.d(message, args); 35cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 36cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 37310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public static void i(String message, Object... args) { 38310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen DEFAULT_LOGGER.i(message, args); 39cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 40cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 41310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public static void w(String message, Object... args) { 42310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen DEFAULT_LOGGER.w(message, args); 43cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 44cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 45310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public static void e(String message, Object... args) { 46310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen DEFAULT_LOGGER.e(message, args); 47cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 48cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 49310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public static void e(String message, Throwable e) { 50310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen DEFAULT_LOGGER.e(message, e); 51cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 52cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 53310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public static void wtf(String message, Object... args) { 54310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen DEFAULT_LOGGER.wtf(message, args); 55cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 56cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 57310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public final static class Logger { 58310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen 59310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen /** 60310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen * Log everything for debug builds or if running on a dev device. 61310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen */ 62310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public final static boolean DEBUG = BuildConfig.DEBUG 63310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen || "eng".equals(Build.TYPE) 64310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen || "userdebug".equals(Build.TYPE); 65310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen 66310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public final String logTag; 67310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen 68310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public Logger(String logTag) { 69310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen this.logTag = logTag; 70cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 71cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 72310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public void v(String message, Object... args) { 73310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen if (DEBUG || Log.isLoggable(logTag, Log.VERBOSE)) { 74310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen Log.v(logTag, args == null || args.length == 0 75310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen ? message : String.format(message, args)); 76310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen } 77cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 78cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 79310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public void d(String message, Object... args) { 80310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen if (DEBUG || Log.isLoggable(logTag, Log.DEBUG)) { 81310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen Log.d(logTag, args == null || args.length == 0 ? message 82310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen : String.format(message, args)); 83310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen } 84cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 85cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 86310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public void i(String message, Object... args) { 87310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen if (DEBUG || Log.isLoggable(logTag, Log.INFO)) { 88310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen Log.i(logTag, args == null || args.length == 0 ? message 89310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen : String.format(message, args)); 90310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen } 91cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 92cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 93310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public void w(String message, Object... args) { 94310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen if (DEBUG || Log.isLoggable(logTag, Log.WARN)) { 95310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen Log.w(logTag, args == null || args.length == 0 ? message 96310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen : String.format(message, args)); 97310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen } 98cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 99cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 100310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public void e(String message, Object... args) { 101310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen if (DEBUG || Log.isLoggable(logTag, Log.ERROR)) { 102310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen Log.e(logTag, args == null || args.length == 0 ? message 103310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen : String.format(message, args)); 104310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen } 105310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen } 106310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen 107310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public void e(String message, Throwable e) { 108310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen if (DEBUG || Log.isLoggable(logTag, Log.ERROR)) { 109310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen Log.e(logTag, message, e); 110310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen } 111cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 112cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen 113310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen public void wtf(String message, Object... args) { 114310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen if (DEBUG || Log.isLoggable(logTag, Log.ASSERT)) { 115310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen Log.wtf(logTag, args == null || args.length == 0 ? message 116310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen : String.format(message, args)); 117310210dab3e97b1defe0870ecbc25b1451e90392Justin Klaassen } 118cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 119cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen } 120cdbb71b08c13c84af850f4036febc0b90dcfcc7dJustin Klaassen} 121