日志是任何项目开发中的必须组件,它可以记录下来系统的行为,帮助开发者排错,优化系统性能调整系统行为等.既然日志可以帮助我们做很多分析,那么开发者肯定是有很多定制需求的,例如不同环境过滤不同等级的log,格式化输出,输出到文件,打包日志上传分析等等.这里就针对Android平台开发一套日志框架.后续将持续完善.

github地址:https://github.com/HiJesse/Android-NativeLogger

功能清单

状态

功能

默认

设置TAG

NLogger

设置LEVEL

WARN

是否捕获全局异常

false

是否开启文件日志

true

文件日志内容格式

SimpleFormatter

日志文件存放路径

/sdcard/native.logs/

日志文件过期时间

1 day

日志文件打包周期

1 day

适配Android 6.0

-

格式化输出JSON

-

格式化输出XML

-

日志混淆

-

: 已完成

: 待完成

如何引入

Gradle

repositories {

jcenter()

maven { url "https://raw.githubusercontent.com/HiJesse/mvn/master/repository/" }

}

dependencies {

compile "cn.jesse.android:nativelogger:1.0.0"

}

如何使用

简单用法-只使用基础的Console log

NLogger.d("debug");

NLogger.i("MainActivity", "type1");

NLogger.w("MainActivity", "%s", "type2");

NLogger.d("MainActivity", "%s%d%s", "type", 3, "finish");

NLogger.e("uncaughtException", throwable);

日志输出

相当于直接使用Android SDK中的Log

进阶用法

注意压缩日志文件的onZip回调为子进程

NLogger.getInstance()

.builder()

.tag("APP")

.loggerLevel(LoggerLevel.DEBUG)

.fileLogger(true)

.fileDirectory(getApplicationContext().getFilesDir().getPath() + "/logs")

.fileFormatter(new SimpleFormatter())

.expiredPeriod(3)

.catchException(true, new CrashWatcher.UncaughtExceptionListener() {

@Override

public void uncaughtException(Thread thread, Throwable ex) {

NLogger.e("uncaughtException", ex);

android.os.Process.killProcess(android.os.Process.myPid());

}

})

.build();

NLogger.d("debug");

NLogger.i("MainActivity", "type1");

NLogger.w("MainActivity", "%s", "type2");

NLogger.d("MainActivity", "%s%d%s", "type", 3, " finish");

NLogger.zipLogs(new IFileLogger.OnZipListener() {

@Override

public void onZip(boolean succeed, String target) {

if (succeed)

NLogger.i("zip", "succeed : " + target);

}

});

日志输出

配置功能清单中所有属性,并且使用到了压缩日志文件的方法

日志文件路径

解压2016-09-10.zip后得到日志文件

android查看native日志,Android 日志管理框架 NativeLogger相关推荐

  1. Android查看系统事件,Android系统的事件处理概述

    通过对Android基本组件的学习,也有接触少部分Android的事件处理,比如按钮的点击事件.选框的状态切换事件. 一.Android事件处理 Android提供了两种方式的事件处理:基于回调的事件 ...

  2. linux查看native进程,Android 分析应用程序占用native内存

    Android 应用开发大家都知道可以通过DDMS来查看应用程序进程占用的内存大小:然而Native 内存并不能在虚拟堆上看到:Android系统基于Linux,这样的话其具备Linux的大多数特性: ...

  3. android 查看cpu之和,Android查看CPU和GPU使用率

    一.top -t 能打印出线程级别的CPU使用状况 0.打印进程的堆栈信息.从堆栈信息里能够经过.so辨别哪一个线程是干什么的,从而在 top -t 的结果里去查找你想要的那个线程的 CPU 使用状况 ...

  4. android查看cpu信息,Android使用adb命令查看CPU信息

    Android中使用JNI编程的时候会需要编译出不同的SO文件,以供适配不同的机型. 例如: 由此需要查看不同机型的CPU信息. 使用ADB命令查看CPU信息命令如下: 1. adb shell 2. ...

  5. android 查看视频大小,android mediaplayer 视频修改视频大小 (屏幕尺寸mediaPlayer =......

    1 主要是通过更改view 的大小来改变视频的大小. 2 在视频初始化时获得视频的高宽都为0 ,这个必须要注意,必须播放后延时 修改view 大小 3 sufaceview 的布局类是 android ...

  6. android查看程序缓存文件,Android App的文件缓存目录

    Android app的文件缓存目录可以是app内置私有的目录,当然也可以选择外置sdcard目录 内置私有目录 /data/data/[packagename]/files 文件缓存目录,一般存小的 ...

  7. android查看存储占用,Android获取App内存使用情况的方法

    1.代码获取当前app内存的使用情况 ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SER ...

  8. android查看屏幕大小,android获取屏幕尺寸的三种代码

    第一种:DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); ...

  9. android查看内核版本号,Android获取系统内核版本的方法

    看网上关于这个问题的帖子挺少的,和大家分享一下. public static String getKernelVersion() { String kernelVersion = "&quo ...

  10. Android查看web日志,详解Android WebView监听console错误信息

    根据需求,我们要拿到h5的错误信息,并将error信息进行上报.查询了下Android WebView的API发现了WebChromeClient这个方法可以满足要求: @Override publi ...

最新文章

  1. css3 卡片亮光_利用css3实现文字亮光特效的代码
  2. C++ “::” 作用域符 双冒号 实力解释
  3. Java+MyEclipse+Tomcat (四)Servlet提交表单和数据库操作
  4. 目标检测——感受野的学习笔记
  5. tar打包/解包用法
  6. dell笔记本驱动安装失败_声卡驱动安装失败的解决方法
  7. MySql BlackHole存储引擎
  8. Servlet线程安全问题
  9. canvas里图像拖拽操作
  10. dreamweaver动漫HTML网站制作——海贼王主题网页1页海贼王我当定了(HTML+CSS)
  11. Chrome开发者工具详解(六)之Timeline面板
  12. Vue实例基础5 (vue 条件渲染与列表渲)
  13. 开源5款工具漏洞扫描,打包带走吧!
  14. 使用CSS实现首行缩进效果
  15. python简单体育竞技模拟_Python 作业( 模拟体育竞技比赛 )
  16. vba的change事件
  17. 《矩阵理论》大萌课程笔记 - 特殊矩阵
  18. enicode字体反爬,大厂使用的反爬技术,结合OCR处理页面源代码
  19. 大泉州人才网qzrencai.com整站采集程序 v1.1
  20. 【职场】辞职的时间节点有讲究,你知道吗?

热门文章

  1. nodejs,webpack安装以及初步运用
  2. JAVA 如何将String进行大小写转换
  3. 同花顺黄金分割线及斐波那契数列分析网格(主图公式)
  4. 关于pipe管道的读写端关闭问题
  5. 单个H扩展到多个H时,机器学习的保证
  6. 获取枚举类型的字符串
  7. webpack-dev-server‘ is not recognized as an internal or external command
  8. Spring事件监听机制
  9. List集合之CopyOnWriteArrayList
  10. Git操作的基本命令