編輯:關於Android編程
日志是任何項目開發中的必須組件,它可以記錄下來系統的行為,幫助開發者排錯,優化系統性能調整系統行為等.既然日志可以幫助我們做很多分析,那麼開發者肯定是有很多定制需求的,例如不同環境過濾不同等級的log,格式化輸出,輸出到文件,打包日志上傳分析等等.這裡就針對Android平台開發一套日志框架.後續將持續完善.
github地址:https://github.com/HiJesse/Android-NativeLogger
: 已完成
: 待完成
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 studio中斷開SVN連接,並徹底清理項目中的.svn文件。如何斷開SVN的連接。在使用SVN過程中,我們會發現當我們第一次share到subversi
前言android6.0開始,權限的申請發生了改變,申請變的動態化,也就是運行時權限,和iOS相仿,動態化的意思是指,在每次使用需要危險權限的方法的時候,需要檢查程序是否
前面寫過《墨跡天氣3.0引導界面及動畫實現》,裡面完美實現了動畫效果,那一篇文章使用的View Animation,這一篇文章使用的Property Animation實
一、為何寫作此文??你是不是經常看到很多書籍中說:不能在子線程中操作ui,不然會報錯。你是不是也遇到了如下的疑惑(見下面的代碼):@Override prote