日志
This commit is contained in:
54
uni_modules/yk-log/utssdk/app-android/index.uts
Normal file
54
uni_modules/yk-log/utssdk/app-android/index.uts
Normal file
@@ -0,0 +1,54 @@
|
||||
import { WriteApi } from '../interface';
|
||||
import SimpleDateFormat from 'java.text.SimpleDateFormat';
|
||||
import Locale from 'java.util.Locale';
|
||||
import FileOutputStream from 'java.io.FileOutputStream';
|
||||
import File from 'java.io.File';
|
||||
import Date from "java.util.Date";
|
||||
import OutputStreamWriter from 'java.io.OutputStreamWriter';
|
||||
|
||||
const LOG_DISPLAY_NAME = "app_log.txt";
|
||||
|
||||
// 字符串转Uint8Array
|
||||
function stringToUint8Array(str: string) : ByteArray{
|
||||
const arr: ByteArray = new ByteArray(str.length);
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
arr.set(i.toInt(), str.charCodeAt(i)!!.toByte());
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
// 创建消息格式
|
||||
function createMessage(logMessage : string) : string {
|
||||
const timestamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.getDefault()).format(new Date());
|
||||
const logEntry = timestamp + " - " + logMessage + "\n";
|
||||
return logEntry
|
||||
}
|
||||
|
||||
// 写入日志
|
||||
export const write : WriteApi = (logMessage : string) => {
|
||||
const context = UTSAndroid.getAppContext();
|
||||
// 获取应用的私有外部存储目录
|
||||
const externalFilesDir = context!!.getExternalFilesDir(null); // type为null表示根目录
|
||||
if (externalFilesDir == null) {
|
||||
// 外部存储不可用或未挂载
|
||||
return;
|
||||
}
|
||||
|
||||
// 指定放在 应用的私有外部存储目录/Logs 目录中
|
||||
const logDir = new File(externalFilesDir, `Logs`);
|
||||
if (!logDir.exists()) {
|
||||
logDir.mkdirs();
|
||||
}
|
||||
|
||||
const nowDay = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(new Date());
|
||||
const fileName = `${nowDay}_${LOG_DISPLAY_NAME}`;
|
||||
const logFile = new File(logDir, fileName);
|
||||
try {
|
||||
const fos = new FileOutputStream(logFile, true)
|
||||
const oStreamWriter = OutputStreamWriter(fos, 'UTF-8')
|
||||
oStreamWriter.append(createMessage(logMessage));
|
||||
oStreamWriter.close()
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user