1242960d3S猫头猫import {logger, fileAsyncTransport} from 'react-native-logs'; 2242960d3S猫头猫import RNFS from 'react-native-fs'; 3242960d3S猫头猫import pathConst from '@/constants/pathConst'; 4e22d5e4fS猫头猫import Config from '../core/config'; 5ea6d708fS猫头猫import {addLog} from '@/lib/react-native-vdebug/src/log'; 6242960d3S猫头猫 7242960d3S猫头猫const config = { 8242960d3S猫头猫 transport: fileAsyncTransport, 9242960d3S猫头猫 transportOptions: { 10242960d3S猫头猫 FS: RNFS, 11242960d3S猫头猫 filePath: pathConst.logPath, 12242960d3S猫头猫 fileName: `error-log-{date-today}.log`, 13242960d3S猫头猫 }, 14242960d3S猫头猫 dateFormat: 'local', 15242960d3S猫头猫}; 16242960d3S猫头猫 17242960d3S猫头猫const traceConfig = { 18242960d3S猫头猫 transport: fileAsyncTransport, 19242960d3S猫头猫 transportOptions: { 20242960d3S猫头猫 FS: RNFS, 21242960d3S猫头猫 filePath: pathConst.logPath, 22242960d3S猫头猫 fileName: `trace-log.log`, 23242960d3S猫头猫 }, 24242960d3S猫头猫 dateFormat: 'local', 25242960d3S猫头猫}; 26242960d3S猫头猫 27242960d3S猫头猫const log = logger.createLogger(config); 28242960d3S猫头猫const traceLogger = logger.createLogger(traceConfig); 29242960d3S猫头猫 30242960d3S猫头猫export function trace( 31242960d3S猫头猫 desc: string, 321e263108S猫头猫 message?: any, 33242960d3S猫头猫 level: 'info' | 'error' = 'info', 34242960d3S猫头猫) { 35242960d3S猫头猫 if (__DEV__) { 36242960d3S猫头猫 console.log(desc, message); 37242960d3S猫头猫 } 38242960d3S猫头猫 // 特殊情况记录操作路径 39e22d5e4fS猫头猫 if (Config.get('setting.basic.debug.traceLog')) { 40242960d3S猫头猫 traceLogger[level]({ 41242960d3S猫头猫 desc, 42242960d3S猫头猫 message, 43242960d3S猫头猫 }); 44242960d3S猫头猫 } 45242960d3S猫头猫} 46242960d3S猫头猫 47*60dec65dS猫头猫export async function clearLog() { 48*60dec65dS猫头猫 const files = await RNFS.readDir(pathConst.logPath); 49*60dec65dS猫头猫 await Promise.all( 50*60dec65dS猫头猫 files.map(async file => { 51*60dec65dS猫头猫 if (file.isFile()) { 52*60dec65dS猫头猫 try { 53*60dec65dS猫头猫 await RNFS.unlink(file.path); 54*60dec65dS猫头猫 } catch {} 55*60dec65dS猫头猫 } 56*60dec65dS猫头猫 }), 57*60dec65dS猫头猫 ); 58*60dec65dS猫头猫} 59*60dec65dS猫头猫 60242960d3S猫头猫export function errorLog(desc: string, message: any) { 61e22d5e4fS猫头猫 if (Config.get('setting.basic.debug.errorLog')) { 62242960d3S猫头猫 log.error({ 63242960d3S猫头猫 desc, 64242960d3S猫头猫 message, 65242960d3S猫头猫 }); 66242960d3S猫头猫 trace(desc, message, 'error'); 67242960d3S猫头猫 } 68242960d3S猫头猫} 69242960d3S猫头猫 70ea6d708fS猫头猫export function devLog( 71ea6d708fS猫头猫 method: 'log' | 'error' | 'warn' | 'info', 72ea6d708fS猫头猫 ...args: any[] 73ea6d708fS猫头猫) { 74ea6d708fS猫头猫 if (Config.get('setting.basic.debug.devLog')) { 75ea6d708fS猫头猫 addLog(method, args); 76ea6d708fS猫头猫 } 77ea6d708fS猫头猫} 78ea6d708fS猫头猫 79242960d3S猫头猫export {log}; 80