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