导航:首页 > 操作系统 > 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