導航:首頁 > 操作系統 > androidlogsd

androidlogsd

發布時間:2023-04-13 22:31:06

⑴ 如何抓取android logcat日誌

您好,很高興為您解答。
1,安裝sdk(參考android
sdk環境安裝裂指)
2,使用數據線鏈接手機,在手機助手的sdcard中建立一個1.log的文件
3,程序運行cmd
4,輸入抓取命令:logcat
-s
'*:e'
>
/mmt/sdcard/1.log
5,雹源派使用手機崩潰一次
6,查看日誌抓取文件,分不清楚是那個時間段所造成的後果
7,加入命令:-v
time
就會顯示出時間
8,輸入命令logcat
-v
time
-s
'*:e'
>
/mmt/sdcard/1.log
9,查看結果
如若滿意,請點擊右側【採納答案】,如若還有問題,請點擊【追問】
希望我的回答對您有所幫源賀助,望採納!
~
o(∩_∩)o~

⑵ 如何獲得Android的崩潰日誌

已經做成sdk的形式,源碼已公開,源碼看不懂的請自行google。

如果想定製適應自己app的sdk請自行fork。

AndroidLogCollector

android
app崩潰日誌收集sdk 1.0

作者:賈博士

崩潰日誌收集方法:

1.LogCollector是lib包,在需要添加崩潰日誌sdk的工程中導入此包。

2.導入lib後,在自己的工程的AndroidManifest.xml文件中加入許可權:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

3.在自己的工程中重寫自己的application,在oncreate中加入
LogCollector.init(getApplicationContext(), UPLOAD_URL, params);

PS:重寫自己的application記得在Manifest注冊

參數:

1.Context

2.String UPLOAD_URL ,上傳地址url,支持http和https方式,post方法。

3.HttpParameters params ,自定義的類,用於post上傳其他參數。

說明:

發生崩潰後,日誌會保存在 /data/data/{your package name}/files/ 目錄下

日誌只有一個文件,多條數據日誌保存

日誌文件上傳成功後會自動刪除,上傳不成功則不刪除

日誌格式可以根據自己的需求在源碼中改動

http的post傳的數據也可自行修改

參考代碼:
public class MyApplication extends Application {
//post method , upload logfile url,replace your site . support http or https
private static final String UPLOAD_URL = "http://xxxxxxxx";

@Override
public void onCreate() {
super.onCreate();

//upload logfile , post params.
HttpParameters params = new HttpParameters();
params.add("key1", "value1");
params.add("key2", "value2");
params.add("key3", "value3");
//.......
//replace your key and value;

boolean isDebug = true;
//set debug mode , you can see debug log , and also you can get logfile in sdcard;
LogCollector.setDebugMode(isDebug);
LogCollector.init(getApplicationContext(), UPLOAD_URL, params);//params can be null
}
}

上傳日誌方法:

需要先在application中執行init,

然後在任何位置添加如下代碼:
LogCollector.upload(boolean isWifiOnly);

參數:

1.boolean isWifiOnly; true代表只在wifi情況下發送,false代表有網的情況下就發送(包括流量和wifi)

您可以在service,activity等位置的合適時機觸發,不會卡界面也不會影響性能。

參考代碼:
private void uploadLogFile(){
boolean isWifiOnly = true;//only wifi mode can upload
LogCollector.upload(isWifiOnly);//upload at the right time
}

調試:

在init之前調用
LogCollector.setDebugMode(boolean isDebug);

說明:

1.開啟調試後可以看到堆棧的log信息

2.同時可以在sd卡下的Android/data/{your package name}/Log/ 目錄下可以查看保存的崩潰log日誌

該目錄下的日誌不會自動刪除,請及時清空,避免佔用空間

⑶ 為什麼 android的SD卡上 上產生log 文件夾,占很大的空間,不停產生。

這不是原生的安卓產生的,是你在安卓上裝的某個程序產生的,安卓本身是不會往SD卡上寫LOG的。至於到底是哪個程序寫的,你只能自己找啦很多程序都會寫的。另外記住,寫大量LOG文件是要消耗一定的手機性能的,也會令你的手機更耗電。你最好找出這個程序,卸載它。

⑷ android 錯誤日誌 哪裡

1、創建MyCrashHandler類
package com.example.yu.myapplication;

import android.content.Context;
import android.os.Environment;
import android.util.Log;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.Thread.UncaughtExceptionHandler;
import java.util.Date;

/**
* 全局捕獲導常,保存到本地錯誤日誌。日誌
* 路徑位於sdcard/錯誤日誌Log/myErrorLog下。
*/
public class MyCrashHandler implements UncaughtExceptionHandler {

private static MyCrashHandler instance;

public static MyCrashHandler getInstance() {
if (instance == null) {
instance = new MyCrashHandler();
}
return instance;
}

public void init(Context ctx) {
Thread.(this);
}

/**
* 核心方法,當程序crash 會回調此方法, Throwable中存放這錯誤日誌
*/
@Override
public void uncaughtException(Thread arg0, Throwable arg1) {

String logPath;
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
logPath = Environment.getExternalStorageDirectory()
.getAbsolutePath()
+ File.separator
+ File.separator
+ "錯誤日誌Log";

File file = new File(logPath);
if (!file.exists()) {
file.mkdirs();
}
try {
FileWriter fw = new FileWriter(logPath + File.separator
+ "myErrorlog.log", true);
fw.write(new Date() + "錯誤原因:\n");
// 錯誤信息
// 這里還可以加上當前的系統版本,機型型號 等等信息
StackTraceElement[] stackTrace = arg1.getStackTrace();
fw.write(arg1.getMessage() + "\n");
for (int i = 0; i < stackTrace.length; i++) {
fw.write("file:" + stackTrace[i].getFileName() + " class:"
+ stackTrace[i].getClassName() + " method:"
+ stackTrace[i].getMethodName() + " line:"
+ stackTrace[i].getLineNumber() + "\n");
}
fw.write("\n");
fw.close();
// 上傳錯誤信息到伺服器
// uploadToServer();
} catch (IOException e) {
Log.e("crash handler", "load file failed...", e.getCause());
}
}
arg1.printStackTrace();
android.os.Process.killProcess(android.os.Process.myPid());
}
}

⑸ android 中怎麼把logcat和radio的log保存到SD卡中

在DDMS 中 可以保存 logcat 的。

⑹ Android SD卡上文件操作及記錄日誌操作具體方法

本文實例講述了Android SD卡上文件操作及記錄隱態日誌操作的方法灶兆源。分享給大家供大家參考,具猜搜體如下:

SD卡是否存在

private boolean checkSDCardStatus() { boolean SDCardStatus = false; String sDStateString = android.os.Environment.getExternalStorageState(); if (sDStateString.equals(android.os.Environment.MEDIA_MOUNTED)) { SDCardStatus = true; } else

SD卡不可用

return SDCardStatus

SD卡上是否有APK文件

private boolean checkFileExist(String iFilePath) { boolean fileExist = false; if (checkSDCardStatus()) { File myFile = new File(iFilePath); if (myFile.exists()) { fileExist = true; } } return fileExist;}

刪除文件

private void Apk(String iFilePath) { if (checkSDCardStatus()) { File myFile = new File(iFilePath); if (myFile.exists()) { myFile.(); } }}

在SD 卡上用txt記錄

public static void logOnFile(String format, Object... args){ String logstr = String.format(format, args); SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date = sDateFormat.format(new java.util.Date()); logstr = "/r/n-------------------------/r/n" + date + "/r/n" + logstr; FileOutputStream fout; DataOutputStream dataout; try { fout = new FileOutputStream("//sdcard//log.txt",true); dataout = new DataOutputStream(fout); dataout.writeUTF(logstr); dataout.flush(); dataout.close(); fout.flush(); fout.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }}

希望本文所述對大家Android程序設計有所幫助。

⑺ Android 日誌系統分析(三):logcat

logcat 作為讀取日誌的工具,相當於client 的角色;在前兩篇文章中,關於 logcat 如何與其他部分溝通獲取日誌信息的流程已經介紹的比較清晰,本文不在贅述,轉而歸納一下 logcat 的一些常用指令,並對其中一些做詳細分析

Android 日誌系統為日誌消息保留了多個環形緩沖區,但並非多有的日誌消息都會發送到默認的環形緩沖區。這里可以採用 logcat -b 命令查看設備的其他緩沖區:

如果需要查看內核空間日誌信息,可採用如下幾種方式查看:

1、讀取 /proc/kmsg ,命令如下

讀取/proc/kmsg屬於消費型讀取,讀取之後再次讀取不會顯示已經讀取過的日誌信息

2、讀取 /dev/kmsg ,命令如下

讀取/dev/kmsg會顯示緩存區裡面的所有日誌信息。新寫入的日誌信息會不斷累加到日誌緩沖器中

3、使用 dmesg 命令讀取

dmesg命令讀取一次只顯示一部分日誌,非阻塞執行

使用 -v 命令來修改 log 的輸出格式,以顯示特定的元數據欄位:

優先順序:

logcat -f 命令可以將日誌消息輸出到指定的文件中。這里我們需要確定的一件事是 logcat 作為客戶端的角色,會將通過 liblog 獲得的日誌信息進行格式解析、格式化處理,而 liblog 庫本身並不存在保存、解析的功能。這里來對 -f 指令做一下解析:

_logcat() 函數中解析 -f 指令,設置日誌輸出文件。例如 logcat -f sdcard/log.txt ,則 context->outputFileName 賦值為 sdcard/log.txt

printBinary() 函數為例:

logcat.cpp # printBinary() :

[ 1 ] Android物語:logcat
[ 2 ] android調試——logcat詳解
[ 3 ] 玩轉Android10源碼開發定製(12)內核篇之logcat輸出內核日誌

⑻ microlog4android如何將Android Log日誌寫到SD

我們在進行Android開發時,經常會有這種粗薯體會,由於客戶的設備型號各不相同,從而導致出現多種問題,但對於研發人員,因為沒有log日誌文件,不太容易定位問題的具體位置。所以我們急需一個能將程序日誌寫到SD卡文件里的工具,類似web的log4j那樣。這時microlog4android進入我們的視野,雖然它尚有不足,但也已能滿足大部分需求。

使用microlog4android的步驟如下:

1、下載

到http://code.google.com/p/microlog4android/downloads/list 下載microlog4android-1.0.0.jar和microlog.properties文件。

2、建立使用logger對象

private static final Logger logger = LoggerFactory.getLogger(main.class);

3、在程序的第一個activity的oncreate方法里初始化方法

PropertyConfigurator.getConfigurator(this).configure();

4、把microlog.properties文件放到assets文件夾里

注意:assets文件夾是與res文件夾平級的。

然後更改microlog.properties文件為以下內容:

microlog.level=DEBUG microlog.appender=LogCatAppender;FileAppender microlog.formatter=PatternFormatter microlog.formatter.PatternFormatter.pattern=%c [%P] %m %T

5、寫日誌記錄

logger.debug("這是debug信息");

6、在AndroidManifest.xml 添加寫sd卡的許可權

運行程序,然後到SD卡根目錄,可以發現有一個microlog.txt的'文件,裡面就是我們的日誌了。

更改日誌問價的路徑和名稱

有朋友問如何更改日誌文件的路徑和名稱,在網上找了一通的資料,沒找到答案,只好到https://github.com/johanlkarlsson/microlog4android 下載源代碼,經過查看源代碼的PropertyConfigurator類,發現源代碼里有這么蔽凳清一個配置參數microlog.appender.FileAppender.File,這樣應該就可以更改日誌文件的路徑和名稱了。

配置文件如下:

microlog.level=DEBUG microlog.appender=FileAppender;LogCatAppender microlog.appender.FileAppender.File=mylog.txt microlog.formatter=PatternFormatter microlog.formatter.PatternFormatter.pattern=%c [%P] %m %T

運行程序,發現日誌文件還是叫microlog.txt,更改名稱無效,找了各種原因都無法解決,只好反編譯我們之前下載的microlog4android-1.0.0.jar包,發現PropertyConfigurator這個類和剛剛從GIT下載的源代碼PropertyConfigurator類不一樣,microlog4android-1.0.0.jar包里的PropertyConfigurator類沒有這樣的一個宏前參數microlog.appender.FileAppender.File,只好把從GIT下載下來的源代碼,重新打個包,暫時打成microlog4android-1.1.jar,然後重新運行程序,OK,搞定,日誌文件名稱變成了我們配置的mylog.txt。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

閱讀全文

與androidlogsd相關的資料

熱點內容
卡拉解壓視頻大全 瀏覽:923
android手機系統源碼 瀏覽:885
易語言遞歸演算法 瀏覽:284
中國有出什麼加密幣嗎 瀏覽:530
加密程序不小心刪除 瀏覽:415
清除空文件夾的代碼 瀏覽:608
相冊視頻水印怎麼去掉的app 瀏覽:616
雞啄米c編程入門 瀏覽:826
iphone手機視頻如何加密或隱藏 瀏覽:289
車床一個軸的編程 瀏覽:6
任何APP都借不了款怎麼辦 瀏覽:362
linux刷新命令 瀏覽:518
解壓配音的小視頻 瀏覽:652
phptable頁 瀏覽:813
人工智慧怎麼擺脫演算法 瀏覽:72
思科顯示配置命令 瀏覽:411
網上為什麼對程序員這么多評論 瀏覽:84
app續費怎麼算 瀏覽:775
安卓手機怎麼把相冊傳到蘋果 瀏覽:261
高中信息技術演算法教案 瀏覽:245