/*
* Copyright 2017 GcsSloop
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Last modified 2017-03-10 00:33:05
*
* GitHub: https://github.com/GcsSloop
* Website: http://www.gcssloop.com
* Weibo: http://weibo.com/GcsSloop
*/
package com.gcssloop.diycode_sdk.log;
import android.support.annotation.NonNull;
import android.util.Log;
public class Logger {
private static String DEFAULT_TAG = "GCS-LOG";
private static Config mConfig;
private Logger() {
}
public static Config init() {
mConfig = new Config(DEFAULT_TAG);
return mConfig;
}
public static Config init(@NonNull String tag) {
mConfig = new Config(tag);
return mConfig;
}
public static void v(String message) {
log(Config.LEVEL_VERBOSE, mConfig.getTag(), message);
}
public static void d(String message) {
log(Config.LEVEL_DEBUG, mConfig.getTag(), message);
}
public static void i(String message) {
log(Config.LEVEL_INFO, mConfig.getTag(), message);
}
public static void w(String message) {
log(Config.LEVEL_WARN, mConfig.getTag(), message);
}
public static void e(String message) {
log(Config.LEVEL_ERROR, mConfig.getTag(), message);
}
public static void v(String tag, String message) {
log(Config.LEVEL_VERBOSE, tag, message);
}
public static void d(String tag, String message) {
log(Config.LEVEL_DEBUG, tag, message);
}
public static void i(String tag, String message) {
log(Config.LEVEL_INFO, tag, message);
}
public static void w(String tag, String message) {
log(Config.LEVEL_WARN, tag, message);
}
public static void e(String tag, String message) {
log(Config.LEVEL_ERROR, tag, message);
}
private static void log(int level, String tag, String message) {
if (mConfig.getLevel() == Config.LEVEL_NONE) {
return;
}
if (level < mConfig.getLevel()) {
return;
}
switch (level) {
case Config.LEVEL_VERBOSE:
Log.v(tag, message);
break;
case Config.LEVEL_DEBUG:
Log.d(tag, message);
break;
case Config.LEVEL_INFO:
Log.i(tag, message);
break;
case Config.LEVEL_WARN:
Log.w(tag, message);
break;
case Config.LEVEL_ERROR:
Log.e(tag, message);
break;
}
}
}