Commit ffcc2b94 by yjiucheng

声网日志

parent cd835900
...@@ -205,6 +205,7 @@ dependencies { ...@@ -205,6 +205,7 @@ dependencies {
// implementation project(':m-muse') // implementation project(':m-muse')
implementation project(':m-im') implementation project(':m-im')
implementation project(':m-dynamic') implementation project(':m-dynamic')
implementation project(':m-audioim')
// api rootProject.ext.dependencies["ydl-m-fm-module-ydl"] // api rootProject.ext.dependencies["ydl-m-fm-module-ydl"]
......
ext { ext {
kotlin_version = "1.3.21" kotlin_version = "1.3.21"
dev_mode = false dev_mode = true
ydl_app = [ ydl_app = [
appName : "心理咨询壹点灵", appName : "心理咨询壹点灵",
......
package com.ydl.audioim.bean
/**
* @author jiucheng
* @描述:
* @Copyright Copyright (c) 2018
* @Company 壹点灵
* @date 2020/2/12
*/
class AgoraLogInfoBean(
/**
* 专家头像地址
*/
private var expertHeadUrl: String? = null,
/**
* 专家姓名
*/
private var expertName: String? = null,
/**
* 声网点对点聊天房间id
*/
private var channelId: String? = null,
/**
* 倾诉剩余时长(时长单位s,eg:剩余2min15s,返回135)
*/
private var remainTime: String? = null,
/**
* listenerUid专家uid
*/
private var listenerUid: String? = null,
/**
* 倾述总时长
*/
private var totalDuration: Int? = 0,
/**
* callId
*/
private var callId: String? = null,
/**
*聆听者id(不是聆听者的uid)
*/
private var listenId: String? = null
)
\ No newline at end of file
package com.ydl.audioim.utils
import android.annotation.SuppressLint
import com.ydl.audioim.BuildConfig
import com.ydl.ydlcommon.base.BaseApp
import com.ydl.ydlcommon.modular.ModularServiceManager
import com.yidianling.common.tools.LogUtil
import com.yidianling.common.tools.RxAppTool
import com.yidianling.common.tools.RxDeviceTool
import com.yidianling.common.tools.RxNetTool
import io.reactivex.Observable
import io.reactivex.schedulers.Schedulers
import java.io.BufferedWriter
import java.io.File
import java.io.FileWriter
import java.io.IOException
import java.text.SimpleDateFormat
import java.util.*
/**
* @author jiucheng
* @描述:记录声网双方信息相关的日志工具
* @Copyright Copyright (c) 2018
* @Company 壹点灵
* @date 2020/2/12
*/
class AudioLogUtils {
companion object {
@SuppressLint("SimpleDateFormat")
private val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
fun writeAgoraLog(content: String) {
Observable.create<Any> {
try {
writeLog(content)
if (BuildConfig.DEBUG) {
LogUtil.d("writeLog_complete")
}
} catch (e: Exception) {
}
}.subscribeOn(Schedulers.io())
.subscribe()
}
private fun writeLog(content: String) {
try {
val folder = getLogFolder()
val file = File(folder, "AgoraInfoLog")
if (!file.exists() || !file.isFile) {
file.createNewFile()
}
val fileWriter = FileWriter(file, true)
val writer = BufferedWriter(fileWriter)
writer.write("""Time:${format.format(Calendar.getInstance().time)}""")
writer.newLine()
writer.write("UserUid = ${ModularServiceManager.getPlatformUserService()?.getUser()?.userId}")
writer.newLine()
writer.write("""Network:${RxNetTool.getNetWorkTypeName(BaseApp.getApp())}""")
writer.newLine()
writer.write("""DevicesInfo:${RxDeviceTool.getBuildBrandModel()},${RxDeviceTool.getSDKVersionName()}""")
writer.newLine()
writer.write("""VersionInfo:${RxAppTool.getAppVersionName(BaseApp.getApp())}""")
writer.newLine()
writer.write("AgoraLog:$content")
writer.newLine()
writer.write("--------")
writer.newLine()
writer.flush()
writer.close()
} catch (e: IOException) {
e.printStackTrace()
}
}
//获取app运行日志文件夹
private fun getLogFolder(): File {
val cacheDir = BaseApp.getApp().externalCacheDir.absolutePath
val logFolder = File(cacheDir, "log")
if (!logFolder.exists() || !logFolder.isDirectory) {
logFolder.mkdir()
}
val folder = File(logFolder, "NewYdlApp")
if (!folder.exists() || !folder.isDirectory) {
folder.mkdir()
}
return folder
}
}
}
\ No newline at end of file
package com.ydl.ydlcommon.utils.log package com.ydl.ydlcommon.utils.log
import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.util.Log import android.util.Log
import com.yidianling.common.tools.*
import com.ydl.ydlcommon.base.BaseApp import com.ydl.ydlcommon.base.BaseApp
import com.ydl.ydlcommon.data.PlatformDataManager import com.ydl.ydlcommon.data.PlatformDataManager
import com.ydl.ydlcommon.data.http.LogParam import com.ydl.ydlcommon.data.http.LogParam
import com.ydl.ydlcommon.data.http.ThrowableConsumer import com.ydl.ydlcommon.data.http.ThrowableConsumer
import com.ydl.ydlcommon.modular.ModularServiceManager import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.utils.FileUtils import com.ydl.ydlcommon.utils.FileUtils
import com.yidianling.common.tools.*
import io.reactivex.Observable import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.functions.Consumer import io.reactivex.functions.Consumer
...@@ -40,13 +40,13 @@ class LogHelper private constructor() { ...@@ -40,13 +40,13 @@ class LogHelper private constructor() {
} catch (e: Exception) { } catch (e: Exception) {
} }
}.subscribeOn(Schedulers.io()) }.subscribeOn(Schedulers.io())
.subscribe() .subscribe()
} }
/** /**
* 删除过期日志 * 删除过期日志
*/ */
fun deleteExpireLog() { private fun deleteExpireLog() {
val files = getLogFolder().listFiles() val files = getLogFolder().listFiles()
val calendar = Calendar.getInstance() val calendar = Calendar.getInstance()
calendar.add(Calendar.WEEK_OF_YEAR, -1) calendar.add(Calendar.WEEK_OF_YEAR, -1)
...@@ -59,7 +59,9 @@ class LogHelper private constructor() { ...@@ -59,7 +59,9 @@ class LogHelper private constructor() {
} }
} }
@SuppressLint("SimpleDateFormat")
private val dateFormat = SimpleDateFormat("yyyyMMdd") private val dateFormat = SimpleDateFormat("yyyyMMdd")
@SuppressLint("SimpleDateFormat")
private val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") private val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
fun writeLogSync(content: String) { fun writeLogSync(content: String) {
...@@ -73,7 +75,7 @@ class LogHelper private constructor() { ...@@ -73,7 +75,7 @@ class LogHelper private constructor() {
} catch (e: Exception) { } catch (e: Exception) {
} }
}.subscribeOn(Schedulers.io()) }.subscribeOn(Schedulers.io())
.subscribe() .subscribe()
} }
private fun writeLog(content: String, className: String, methodName: String, line: Int) { private fun writeLog(content: String, className: String, methodName: String, line: Int) {
...@@ -82,7 +84,7 @@ class LogHelper private constructor() { ...@@ -82,7 +84,7 @@ class LogHelper private constructor() {
val writer = BufferedWriter(fileWriter) val writer = BufferedWriter(fileWriter)
writer.write("""Time:${format.format(Calendar.getInstance().time)}""") writer.write("""Time:${format.format(Calendar.getInstance().time)}""")
writer.newLine() writer.newLine()
writer.write("UserInfo:uid = ${ ModularServiceManager.getPlatformUserService()?.getUser()?.userId}") writer.write("UserInfo:uid = ${ModularServiceManager.getPlatformUserService()?.getUser()?.userId}")
writer.newLine() writer.newLine()
writer.write("""Network:${RxNetTool.getNetWorkTypeName(BaseApp.getApp())}""") writer.write("""Network:${RxNetTool.getNetWorkTypeName(BaseApp.getApp())}""")
writer.newLine() writer.newLine()
...@@ -108,30 +110,33 @@ class LogHelper private constructor() { ...@@ -108,30 +110,33 @@ class LogHelper private constructor() {
} }
fun uploadLog(showToast:Boolean) { @SuppressLint("CheckResult")
fun uploadLog(showToast: Boolean) {
Observable.create<File> { Observable.create<File> {
it.onNext(zip()) it.onNext(zip())
it.onComplete() it.onComplete()
}.subscribeOn(Schedulers.io()) }.subscribeOn(Schedulers.io())
.flatMap { PlatformDataManager.getHttp().uploadLog( .flatMap {
PlatformDataManager.getHttp().uploadLog(
LogParam( LogParam(
it it
) )
) } )
.observeOn(AndroidSchedulers.mainThread()) }
.subscribe(Consumer { .observeOn(AndroidSchedulers.mainThread())
if (showToast){ .subscribe(Consumer {
ToastUtil.toastShort(it.msg) if (showToast) {
} ToastUtil.toastShort(it.msg)
Log.d("TAG", "") }
}, object : ThrowableConsumer() { Log.d("TAG", "")
override fun accept(msg: String) { }, object : ThrowableConsumer() {
if (showToast){ override fun accept(msg: String) {
ToastUtil.toastShort(msg) if (showToast) {
} ToastUtil.toastShort(msg)
Log.d("TAG", msg)
} }
}) Log.d("TAG", msg)
}
})
} }
...@@ -153,18 +158,18 @@ class LogHelper private constructor() { ...@@ -153,18 +158,18 @@ class LogHelper private constructor() {
if (zipFile.exists()) zipFile.delete() if (zipFile.exists()) zipFile.delete()
zipFile.createNewFile() zipFile.createNewFile()
if (appLog.exists()){ if (appLog.exists()) {
files.add(appLog) files.add(appLog)
} }
if (yunxinLog.exists()){ if (yunxinLog.exists()) {
files.add(yunxinLog) files.add(yunxinLog)
} }
if (agoraLog.exists()){ if (agoraLog.exists()) {
files.add(agoraLog) files.add(agoraLog)
} }
// ZipUtils.toZip(getLogFolder().absolutePath, FileOutputStream(zipFile), true) // ZipUtils.toZip(getLogFolder().absolutePath, FileOutputStream(zipFile), true)
ZipUtils.toZip(files,FileOutputStream(zipFile)) ZipUtils.toZip(files, FileOutputStream(zipFile))
return zipFile return zipFile
} }
...@@ -213,14 +218,15 @@ class LogHelper private constructor() { ...@@ -213,14 +218,15 @@ class LogHelper private constructor() {
} }
//获取云信日志路径 //获取云信日志路径
private fun getYunXinLog(context: Context):File{ private fun getYunXinLog(context: Context): File {
val yunxin = FileUtils.getSDDirectory()+"/"+context.packageName+"/nim/log" val yunxin = FileUtils.getSDDirectory() + "/" + context.packageName + "/nim/log"
LogUtil.d(yunxin) LogUtil.d(yunxin)
return File(yunxin) return File(yunxin)
} }
//获取声网日志 //获取声网日志
private fun getAgoraLog(context: Context):File{ private fun getAgoraLog(context: Context): File {
val agora = FileUtils.getSDDirectory()+"/"+context.packageName+"/agorasdk.log" val agora = FileUtils.getSDDirectory() + "/" + context.packageName + "/agorasdk.log"
return File(agora) return File(agora)
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment