日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

人人网SDK Demo项目学习获取系统Log类

發布時間:2024/8/23 windows 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 人人网SDK Demo项目学习获取系统Log类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

renrenSDK中有個獲取系統Log的方法 將來可能用的到吧

/*** $id$*/ package com.renren.api.connect.android.demo;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;/*** Read the logcat log* * @author Shaofeng Wang (shaofeng.wang@renren-inc.com)*/ public final class LogHelper {private static final String LOG_TAG_REQUEST = "Renren-SDK-Request";private static final String LOG_TAG_RESPONSE = "Renren-SDK-Response";/*** Get the log using the specified filter * * @param tag * @return*/public synchronized String getLog() { StringBuffer logger = new StringBuffer();try {Process process = Runtime.getRuntime().exec("logcat -v time + "+ LOG_TAG_REQUEST + ":I " + LOG_TAG_RESPONSE + ":I *:S");BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()), 1024);Thread thread = new Thread(new LogFinalizer(process));thread.start();String line = bufferedReader.readLine();while (line != null && line.length() != 0) {logger.append(parseLog(line));line = bufferedReader.readLine();}if(bufferedReader != null) {bufferedReader.close();}} catch (IOException e) {e.printStackTrace();}return logger.toString();}/*** clear the log*/public synchronized void clear() {try {Runtime.getRuntime().exec("logcat -c + "+ LOG_TAG_REQUEST + ":I " + LOG_TAG_RESPONSE + ":I *:S");} catch (IOException e) {}}/*** 解析log為顯示格式* @param log* @return*/private static String parseLog(String logStr) {StringBuffer sb = new StringBuffer();String requestTag = "I/" + LOG_TAG_REQUEST;String responseTag = "I/" + LOG_TAG_RESPONSE;if(logStr.contains(requestTag)) { //請求log 格式形如:08-23 03:05:43.112 I/Renren-SDK-Request( 775): //method=users.getInfo&Bundle[{v=1.0, uids=3××××××, …… StringBuffer log = new StringBuffer(logStr);int tagIndex = log.indexOf(requestTag);//添加時間sb.append(log.substring(0, tagIndex)).append("\r\n");int methodIndex = log.indexOf("method");int methodEnd = log.indexOf("&");//添加method項sb.append(log.substring(methodIndex, methodEnd)).append("\r\n").append("request:\r\n");String bundleStr = "Bundle[{";int paramIndex = log.indexOf(bundleStr, 0) + bundleStr.length();//獲取參數序列(不包括"[{"以及"}]")String paramStr = log.substring(paramIndex, log.length() - 2);//添加參數 key=value 對String[] params = paramStr.split(",");sb.append("{\r\n");if(params != null) {for(String str : params) {sb.append("\t").append(str.trim()).append(";\r\n");}}sb.append("}\r\n\r\n");} else if(logStr.contains(responseTag)){ //響應log 格式形如:03:05:51.452 I/Renren-SDK-Response( 775): // method=status.set&{"result":1}…… StringBuffer log = new StringBuffer(logStr);int tagIndex = log.indexOf(responseTag);//添加時間sb.append(log.substring(0, tagIndex)).append("\r\n");int methodIndex = log.indexOf("method");int methodEnd = log.indexOf("&");//添加method項sb.append(log.substring(methodIndex, methodEnd)).append("\r\n").append("response:\r\n");int paramIndex = methodEnd + 1;//獲取參數序列String paramStr = log.substring(paramIndex, log.length());//添加參數 key=value 對paramStr.replace(",", ",\r\n");sb.append(paramStr).append("\r\n\r\n");} else {return logStr;}return sb.toString();}/*** Used to stop the log process after a specified time * * @author Shaofeng Wang (shaofeng.wang@renren-inc.com)*/private class LogFinalizer implements Runnable{private Process process;public LogFinalizer(Process process) {this.process = process;}@Overridepublic void run() {try {Thread.sleep(2000);} catch (InterruptedException e) {}process.destroy();}} }

轉載于:https://www.cnblogs.com/sfshine/archive/2012/10/13/2742847.html

總結

以上是生活随笔為你收集整理的人人网SDK Demo项目学习获取系统Log类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。