1
/*
2
* Copyright (C) 2013 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
package com.example.android.common.logger;
17
18
/**
19
* Helper class for a list (or tree) of LoggerNodes.
20
*
21
* <p>When this is set as the head of the list,
22
* an instance of it can function as a drop-in replacement for {@link android.util.Log}.
23
* Most of the methods in this class server only to map a method call in Log to its equivalent
24
* in LogNode.</p>
25
*/
26
public class Log {
27
// Grabbing the native values from Android's native logging facilities,
28
// to make for easy migration and interop.
29
public static final int NONE = -1;
30
public static final int VERBOSE = android.util.Log.VERBOSE;
31
public static final int DEBUG = android.util.Log.DEBUG;
32
public static final int INFO = android.util.Log.INFO;
33
public static final int WARN = android.util.Log.WARN;
34
public static final int ERROR = android.util.Log.ERROR;
35
public static final int ASSERT = android.util.Log.ASSERT;
36
37
// Stores the beginning of the LogNode topology.
38
private static LogNode mLogNode;
39
40
/**
41
* Returns the next LogNode in the linked list.
42
*/
43
public static LogNode getLogNode() {
44
return mLogNode;
45
}
46
47
/**
48
* Sets the LogNode data will be sent to.
49
*/
50
public static void setLogNode(LogNode node) {
51
mLogNode = node;
52
}
53
54
/**
55
* Instructs the LogNode to print the log data provided. Other LogNodes can
56
* be chained to the end of the LogNode as desired.
57
*
58
* @param priority Log level of the data being logged. Verbose, Error, etc.
59
* @param tag Tag for for the log data. Can be used to organize log statements.
60
* @param msg The actual message to be logged.
61
* @param tr If an exception was thrown, this can be sent along for the logging facilities
62
* to extract and print useful information.
63
*/
64
public static void println(int priority, String tag, String msg, Throwable tr) {
65
if (mLogNode != null) {
66
mLogNode.println(priority, tag, msg, tr);
67
}
68
}
69
70
/**
71
* Instructs the LogNode to print the log data provided. Other LogNodes can
72
* be chained to the end of the LogNode as desired.
73
*
74
* @param priority Log level of the data being logged. Verbose, Error, etc.
75
* @param tag Tag for for the log data. Can be used to organize log statements.
76
* @param msg The actual message to be logged. The actual message to be logged.
77
*/
78
public static void println(int priority, String tag, String msg) {
79
println(priority, tag, msg, null);
80
}
81
82
/**
83
* Prints a message at VERBOSE priority.
84
*
85
* @param tag Tag for for the log data. Can be used to organize log statements.
86
* @param msg The actual message to be logged.
87
* @param tr If an exception was thrown, this can be sent along for the logging facilities
88
* to extract and print useful information.
89
*/
90
public static void v(String tag, String msg, Throwable tr) {
91
println(VERBOSE, tag, msg, tr);
92
}
93
94
/**
95
* Prints a message at VERBOSE priority.
96
*
97
* @param tag Tag for for the log data. Can be used to organize log statements.
98
* @param msg The actual message to be logged.
99
*/
100
public static void v(String tag, String msg) {
101
v(tag, msg, null);
102
}
103
104
105
/**
106
* Prints a message at DEBUG priority.
107
*
108
* @param tag Tag for for the log data. Can be used to organize log statements.
109
* @param msg The actual message to be logged.
110
* @param tr If an exception was thrown, this can be sent along for the logging facilities
111
* to extract and print useful information.
112
*/
113
public static void d(String tag, String msg, Throwable tr) {
114
println(DEBUG, tag, msg, tr);
115
}
116
117
/**
118
* Prints a message at DEBUG priority.
119
*
120
* @param tag Tag for for the log data. Can be used to organize log statements.
121
* @param msg The actual message to be logged.
122
*/
123
public static void d(String tag, String msg) {
124
d(tag, msg, null);
125
}
126
127
/**
128
* Prints a message at INFO priority.
129
*
130
* @param tag Tag for for the log data. Can be used to organize log statements.
131
* @param msg The actual message to be logged.
132
* @param tr If an exception was thrown, this can be sent along for the logging facilities
133
* to extract and print useful information.
134
*/
135
public static void i(String tag, String msg, Throwable tr) {
136
println(INFO, tag, msg, tr);
137
}
138
139
/**
140
* Prints a message at INFO priority.
141
*
142
* @param tag Tag for for the log data. Can be used to organize log statements.
143
* @param msg The actual message to be logged.
144
*/
145
public static void i(String tag, String msg) {
146
i(tag, msg, null);
147
}
148
149
/**
150
* Prints a message at WARN priority.
151
*
152
* @param tag Tag for for the log data. Can be used to organize log statements.
153
* @param msg The actual message to be logged.
154
* @param tr If an exception was thrown, this can be sent along for the logging facilities
155
* to extract and print useful information.
156
*/
157
public static void w(String tag, String msg, Throwable tr) {
158
println(WARN, tag, msg, tr);
159
}
160
161
/**
162
* Prints a message at WARN priority.
163
*
164
* @param tag Tag for for the log data. Can be used to organize log statements.
165
* @param msg The actual message to be logged.
166
*/
167
public static void w(String tag, String msg) {
168
w(tag, msg, null);
169
}
170
171
/**
172
* Prints a message at WARN priority.
173
*
174
* @param tag Tag for for the log data. Can be used to organize log statements.
175
* @param tr If an exception was thrown, this can be sent along for the logging facilities
176
* to extract and print useful information.
177
*/
178
public static void w(String tag, Throwable tr) {
179
w(tag, null, tr);
180
}
181
182
/**
183
* Prints a message at ERROR priority.
184
*
185
* @param tag Tag for for the log data. Can be used to organize log statements.
186
* @param msg The actual message to be logged.
187
* @param tr If an exception was thrown, this can be sent along for the logging facilities
188
* to extract and print useful information.
189
*/
190
public static void e(String tag, String msg, Throwable tr) {
191
println(ERROR, tag, msg, tr);
192
}
193
194
/**
195
* Prints a message at ERROR priority.
196
*
197
* @param tag Tag for for the log data. Can be used to organize log statements.
198
* @param msg The actual message to be logged.
199
*/
200
public static void e(String tag, String msg) {
201
e(tag, msg, null);
202
}
203
204
/**
205
* Prints a message at ASSERT priority.
206
*
207
* @param tag Tag for for the log data. Can be used to organize log statements.
208
* @param msg The actual message to be logged.
209
* @param tr If an exception was thrown, this can be sent along for the logging facilities
210
* to extract and print useful information.
211
*/
212
public static void wtf(String tag, String msg, Throwable tr) {
213
println(ASSERT, tag, msg, tr);
214
}
215
216
/**
217
* Prints a message at ASSERT priority.
218
*
219
* @param tag Tag for for the log data. Can be used to organize log statements.
220
* @param msg The actual message to be logged.
221
*/
222
public static void wtf(String tag, String msg) {
223
wtf(tag, msg, null);
224
}
225
226
/**
227
* Prints a message at ASSERT priority.
228
*
229
* @param tag Tag for for the log data. Can be used to organize log statements.
230
* @param tr If an exception was thrown, this can be sent along for the logging facilities
231
* to extract and print useful information.
232
*/
233
public static void wtf(String tag, Throwable tr) {
234
wtf(tag, null, tr);
235
}
236
}