AudioLogUtils.kt 3.35 KB
Newer Older
yjiucheng committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
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")
YKai committed
30
         val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
yjiucheng committed
31

严久程 committed
32
        fun writeAgoraLog(content: String, fileName: String, isAppend: Boolean = true) {
yjiucheng committed
33 34
            Observable.create<Any> {
                try {
严久程 committed
35
                    writeLog(content, fileName, isAppend)
yjiucheng committed
36 37 38 39 40 41 42 43 44
                    if (BuildConfig.DEBUG) {
                        LogUtil.d("writeLog_complete")
                    }
                } catch (e: Exception) {
                }
            }.subscribeOn(Schedulers.io())
                .subscribe()
        }

严久程 committed
45
        private fun writeLog(content: String, fileName: String, isAppend: Boolean) {
yjiucheng committed
46 47
            try {
                val folder = getLogFolder()
48
                val file = File(folder, fileName)
yjiucheng committed
49 50 51 52 53
                if (!file.exists() || !file.isFile) {
                    file.createNewFile()
                }
                val fileWriter = FileWriter(file, true)
                val writer = BufferedWriter(fileWriter)
严久程 committed
54 55 56
                if (!isAppend) {
                    writer.write("----------------")
                    writer.newLine()
57 58 59 60
//                    writer.write("""Time:${format.format(Calendar.getInstance().time)}""")
//                    writer.newLine()
//                    writer.write("ExpertUid = ${ModularServiceManager.getPlatformUserService()?.getUser()?.userId}")
//                    writer.newLine()
严久程 committed
61 62 63 64 65 66 67 68
                    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(content)
yjiucheng committed
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
                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
        }
    }
}