当前位置:首页 » 安卓系统 » android日志上传

android日志上传

发布时间: 2022-06-19 05:27:30

‘壹’ android上如何实现后台日志记录并写文件到sd卡

1.debug alarm manager 启动的service,你想要知道是否每一次service的执行都正常,一切都是按照你所想的; 2.一些重要的信息,需要保存起来做分析或者需要上传到服务器做分析的; 3.开发期间,了解各个主要是网络接口的工作状态,执行效率(每个接口的执行时间)等等;过程分析1、下载 下载下来的microlog.properties是microlog.properties.txt,修改一下后缀名) 2、建立使用logger对象 private static final Logger logger = LoggerFactory.getLogger(main.class); 3、在程序的第activit或者service的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(my debug); 6、在AndroidManifest.xml 添加写sd卡的权限 <uses-permission android:name=android.permission.WRITE_EXTERNAL_STORAGE / 启动程序,然后到SD卡根目录,可以发现有一个microlog.txt的文件,里面就是我们记录的日志了。 1.上面的日志在多地方调用,有时候可能会发现只保存了一条记录,每次后面的日志都覆盖了前面的日志,所以我们需要增加点额外代码; 2.在第三步后面: final FileAppender fa = logger.getAppender(1); fa.setAppend(true); ok, 到此大功告成。

‘贰’ android怎样实时上传崩溃日志到服务器

让系统处理崩溃,然后把错误日志上传到服务器并且服务只能运行2秒钟,如果2秒钟错误日志没有上传到服务器,那么这个错误信息就不要了。然后再停止服务,在服务销毁的时候同时销毁进程。

核心代码:

public int onStartCommand(Intent intent, int flags, int startId) { stopDelayed = intent.getLongExtra("Delayed", 2000); PackageName = intent.getStringExtra("PackageName"); expection = intent.getStringExtra("exception"); try { //这里上传崩溃日志 } catch (java.lang.Exception e) { e.printStackTrace(); } handler.postDelayed(new Runnable() { @Override public void run() {/* Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(PackageName); startActivity(LaunchIntent);*/ KillSelfService.this.stopSelf(); //android.os.Process.killProcess(android.os.Process.myPid()); } }, stopDelayed); return super.onStartCommand(intent, flags, startId);}
@Overridepublic void onDestroy() { super.onDestroy(); Log.i(TAG, "onDestroy: "); android.os.Process.killProcess(android.os.Process.myPid());}


‘叁’ Android系统的系统日志有哪几个文件,这些文件中包含什么内容

手机的android log(main_log、events_log、kernel_log),mainlog记录手机android上层app以及framework相关活动的log,比如app打印的log。

eventslog主要是ActivityManager、powerManager等相关的log;Kernellog则主要是驱动相关的log。

Modem log,主要是通话相关的,比如信号强弱、连接网络等。netlog,查看网络链接情况,抓取网络包等。其它有data/anr 目录下的traces/tombstones等,分析死机、重启。

mainlog,查看应用申请什么权限,一般不会开放。

(3)android日志上传扩展阅读

系统日志的价值

系统日志策略可以在故障刚刚发生时就向你发送警告信息,系统日志帮助你在最短的时间内发现问题。

系统日志是一种非常关键的组件,因为系统日志可以让你充分了解自己的环境。这种系统日志信息对于决定故障的根本原因或者缩小系统攻击范围来说是非常关键的,因为系统日志可以让你了解故障或者袭击发生之前的所有事件。

为虚拟化环境制定一套良好的系统日志策略也是至关重要的,因为系统日志需要和许多不同的外部组件进行关联。良好的系统日志可以防止你从错误的角度分析问题,避免浪费宝贵的排错时间。

另外一种原因是借助于系统日志,管理员很有可能会发现一些之前从未意识到的问题,在几乎所有刚刚部署系统日志的环境当中。

使用系统日志产品当中包含的其他特性,包括向监控团队自动发送报警通知等功能。系统日志基于警报类型或者准确的警报消息,系统日志可以通过触发特定操作来完成。

系统日志通过简单地设定这些警报,你将会在自己的环境中处于更加主动的位置,因为你可以在事故变得更加严重之前得到通知。

‘肆’ android测试 app 闪退 怎么捕获日志

比如说,你内存有泄露的情况,比如说你发生了异常,而又没有被处理,就会发生闪退的情况。 仔细检查一下你的代码。 或者做好全局的异常捕获,及时将日志上传到服务端进行分析。

‘伍’ 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());
}
}

‘陆’ 天翼云上传日志是什么

通过网页版上传文件:第一步:登录天翼云,在页面上方点击“上传文件”按钮;第二步:在弹出的对话框选择“添加文件”按钮;第三步:在弹出文件框选择文件,点击“打开”按钮即可上传。②通过PC客户端上传文件:通过PC客户端上传文件包括四种方式:1)打开PC客户端中的同步盘,把需要上传的文件直接拖动到同步盘进行上传。2)2)打开PC客户端中的同步目录,把需要上传的文件直接拖动到目录进行上传。3)通过PC客户端中的全部文件,把文件上传到指定的目录。点击“上传”按钮后,选择需要上传的文件即可4)把需要上传的文件拖动至悬浮窗,选择在云端的保存目录后,即可上传文件。③通过Android客户端上传文件:第一步:登录Android客户端,在文件管理右上角方点击菜单,即可选择“上传文件”按钮,第二步:在SD卡中选择文件,点击“确定”按钮,文件即进入传输列表进行上传。④通过iPhone客户端上传文件:通过iPhone客户端上传文件跟Android客户端方法基本一致,但iPhone没有SD卡,需在“照片”或“视频”中选择文件上传。⑤通过iPad客户端上传文件:第一步:登录iPad客户端,在主界面下方点击“上传”按钮,第二步:由于iPad没有SD卡,需在“照片”或“视频”中选择文件上传⑥WindowsPhone客户端暂未开放上传功能。

‘柒’ android 怎么写文件日志到SD卡上

android 如何写文件日志到SD卡上..

/**
* 写文件到sd卡上
*
* @param context
*/
public void writeFileToSD(String context) {
//使用RandomAccessFile 写文件 还是蛮好用的..推荐给大家使用...
String sdStatus = Environment.getExternalStorageState();
if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) {
Log.d("TestFile", "SD card is not avaiable/writeable right now.");
return;
}
try {
String pathName = "/sdcard/";
String fileName = "log.txt";
File path = new File(pathName);
File file = new File(pathName + fileName);
if (!path.exists()) {
Log.d("TestFile", "Create the path:" + pathName);
path.mkdir();
}
if (!file.exists()) {
Log.d("TestFile", "Create the file:" + fileName);
file.createNewFile();
}
RandomAccessFile raf = new RandomAccessFile(file, "rw");
raf.seek(file.length());
raf.write(context.getBytes());
raf.close();
//注释的也是写文件..但是每次写入都会把之前的覆盖..
/*String pathName = "/sdcard/";
String fileName = "log.txt";
File path = new File(pathName);
File file = new File(pathName + fileName);
if (!path.exists()) {
Log.d("TestFile", "Create the path:" + pathName);
path.mkdir();
}
if (!file.exists()) {
Log.d("TestFile", "Create the file:" + fileName);
file.createNewFile();
}
FileOutputStream stream = new FileOutputStream(file);
String s = context;
byte[] buf = s.getBytes();
stream.write(buf);
stream.close();*/
} catch (Exception e) {
Log.e("TestFile", "Error on writeFilToSD.");
}
}

‘捌’ 安卓开发上传文件时Log.e(TAG, "uri "= + uri);什么意思

这个是打印log日志,你这个是答应uri,而且你的=写在了“”外面,TAG是个String是你标签,随便起,你用的是e,打印的是红色的,为error级别,不过无所谓,我习惯开发的时候用.e,红色看的明显

‘玖’ app上传日志有危险吗

不会有危险,但是会泄露你的个人信息。

作为一个开发人员,必须具备安全意识,掌握基础的安全知识,为打造更加安全的应用做出努力。本文浅谈Android客户端的安全问题。

涉及组件、WebView、存储、传输、日志、混淆、应用加固等安全漏洞及防护策略,运用更加合理的配置与防护措施来提高应用的安全级别。

这里提到的组件访问权限主要是指跨应用的进程间通信(IPC,Inter-Process Communication),开发者可以限定应用内的组件是否允许被其他应用调起。

或接收来自外部应用的数据,或者访问我们的数据。并且必须对来自外部应用的数据做校验处理,避免来自外部攻击。如恶意调用组件、广播数据攻击、恶意访问数据等等。


手机软件,主要指安装在智能手机上的软件,完善原始系统的不足与个性化。使手机完善其功能,为用户提供更丰富的使用体验的主要手段。

手机软件的运行需要有相应的手机系统,截至2017年6月1日,主要的手机系统:苹果公司的iOS、谷歌公司的Android(安卓)系统、塞班平台和微软平台。

2019年11月4日,工业和信息化部信息通信管理局组织召开APP侵害用户权益行为专项整治工作启动部署会。

将重点对违规收集用户个人信息、违规使用用户个人信息、不合理索取用户权限、为用户账户注销设置障碍四个方面的8类问题开展规范整治工作。

‘拾’ 如何获得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日志

该目录下的日志不会自动删除,请及时清空,避免占用空间

热点内容
编译器对系统的依赖 发布:2025-05-16 08:37:29 浏览:709
javamap数组 发布:2025-05-16 08:37:28 浏览:450
移动光猫如何自行修改密码 发布:2025-05-16 08:20:15 浏览:124
作为基线存储 发布:2025-05-16 08:15:22 浏览:858
安卓怎么关闭手机应用推荐 发布:2025-05-16 08:03:38 浏览:929
sql内置函数 发布:2025-05-16 08:03:34 浏览:922
怎么看服务器内存型号 发布:2025-05-16 08:03:30 浏览:812
哪里修安卓手机最好 发布:2025-05-16 07:58:25 浏览:825
服务器和电脑是什么区别 发布:2025-05-16 07:58:24 浏览:720
安卓116是什么意思 发布:2025-05-16 07:44:59 浏览:591