自定义根据某个目录输出Log日志
来源:互联网 发布:淘宝对新店的扶持政策 编辑:程序博客网 时间:2024/05/21 05:23
**平时我做项目的时候,总会通过打log输出日志的方法的方法进行查找以及解决bug,相信不少人都是直接用系统的Log.i(TAG,msg)来输出,但是有没有想过一个问题,就是当你的项目上线的的,这些log你怎么关闭?为此,不同的公司或者不同的开发者都会自我封装一个工具类,对Log日志统一管理封装。
**之前我一直是用网上某位大神封装的LogUtils工具类(具体名字不太记得了)。直接上代码:
public class LogUtils { // 日志的6个等级 private static final int VERBOSE = 1; private static final int DEBUG = 2; private static final int INFO = 3; private static final int WARN = 4; private static final int ERROR = 5; private static final int NOTHING = 6; /** * 当开发过程中,只需要将level指定成VERBOSE,即可打印所有的日志 * 当项目正式上线的时候将level指定成NOTHING就可以了 */ private static final int level = VERBOSE; public static void v(String tag, String msg) { if (level <= VERBOSE) { Log.v(tag, msg); } } public static void d(String tag, String msg) { if (level <= DEBUG) { Log.d(tag, msg); } } public static void i(String tag, String msg) { if (level <= INFO) { Log.i(tag, msg); } } public static void w(String tag, String msg) { if (level <= WARN) { Log.w(tag, msg); } } public static void e(String tag, String msg) { if (level <= ERROR) { Log.e(tag, msg); } }}
用法相当简单,测试开发过程中,只需要将当开发过程中,只需要将level指定成VERBOSE,即可打印所有的日志,当项目正式上线的时候将level指定成NOTHING就可以了。
–>但是,每次你都是手动去切换,太麻烦了,而且有时候你线上的包有问题,你拿下来想测试,却发现连接AS没有Log输出,无从查找(当然这个可以反编译修改然后重打包去测试,后面有空我会写一个编译的教程)。所以这个方法有一定的局限性。
**最近在自己做sdk开发的时候,就遇到了这个问题,我应该怎么设置这个log来保证用户发包给我测试的时候,确保接入是否成功呢?当然,我在接某家SDK的时候就发现,在手机里面建立某个文件,来输出某个指定的Log.
–>思路有了 ,通过判断sdcard目录下是否有某个文件,来决定log是否输出,这样子就可以避免打包上线时忘记关闭Log,也可以让用户快速测试SDK是否接入成功。
public class LogUtils { //这个TAG可以自己定义,一般建议就是自己公司名 private static final String TAG = "Briskemen"; private static final boolean isDebug= isFileExist(); /** * 通过判断指定目录下文件是否存在,来决定是否输出Log日志 * @return */ private static boolean isFileExist(){ //目录路径可以自定义。 File file = new File("/sdcard/briskemen"); if (file.exists()){ return true; } return false; } public static void v( String msg) { if (isDebug) { Log.v(TAG, msg); } } public static void d(String msg) { if (isDebug) { Log.d(TAG, msg); } } public static void i( String msg) { if (isDebug) { Log.i(TAG, msg); } } public static void w( String msg) { if (isDebug) { Log.w(TAG, msg); } } public static void e(String tag, String msg) { if (isDebug) { Log.e(TAG, msg); } }}
这里我定义了TAG以及目录路径,这两个你们可以根据实际业务来更改。
–>另外,上面的路径是在sdcard目录下新建一个briskemen的目录,这里附上adb命令,教你快速在sdcard目录下创建该文件.
首先,启动cmd,输入adb shell然后回车,最后cd sdcard回车,表示进入sdcard目录,touch briskemen回车,表示创建该文件。
- 自定义根据某个目录输出Log日志
- 某个类输出日志到某个log文件配置
- spring boot 日志输出到 log.path_IS_UNDEFINED目录
- 自定义log日志输出到文件中保存
- OC IOS 自定义Log日志 附:常用输出宏
- 自定义log日志输出到文件中保存
- android中超实用自定义log日志输出工具类
- Java log日志输出
- log 输出日志
- android Log日志输出
- 自定义Log日志输入
- 自定义Log日志
- 自定义Log日志
- 自定义Log输出
- Unity log 自定义输出
- swift 自定义log输出
- laravel中的错误与日志(可以自定义日志目录和log文件名)
- laravel中的错误与日志(可以自定义日志目录和log文件名)
- LeetCode 712. Minimum ASCII Delete Sum for Two Strings [Medium]
- IntelliJ IDEA 14 注册码
- npm简介及命令
- Android应用第三方登入(QQ)
- 遇到The import org.apache.commons cannot be resolved 的报错
- 自定义根据某个目录输出Log日志
- 普及练习场 简单的模拟 进制转换
- centos 7下安装java环境说明
- andriod——Retrofit+Fresco+MVP商品分类
- angularjs 总结
- 16EFish
- AC自动机
- POJ-1177 Picture (线段树 求矩形周长)
- BookManager(ios)