1import {logger, fileAsyncTransport} from 'react-native-logs'; 2import RNFS from 'react-native-fs'; 3import pathConst from '@/constants/pathConst'; 4import Config from '../core/config'; 5import {addLog} from '@/lib/react-native-vdebug/src/log'; 6 7const config = { 8 transport: fileAsyncTransport, 9 transportOptions: { 10 FS: RNFS, 11 filePath: pathConst.logPath, 12 fileName: `error-log-{date-today}.log`, 13 }, 14 dateFormat: 'local', 15}; 16 17const traceConfig = { 18 transport: fileAsyncTransport, 19 transportOptions: { 20 FS: RNFS, 21 filePath: pathConst.logPath, 22 fileName: `trace-log.log`, 23 }, 24 dateFormat: 'local', 25}; 26 27const log = logger.createLogger(config); 28const traceLogger = logger.createLogger(traceConfig); 29 30export function trace( 31 desc: string, 32 message?: any, 33 level: 'info' | 'error' = 'info', 34) { 35 if (__DEV__) { 36 console.log(desc, message); 37 } 38 // 特殊情况记录操作路径 39 if (Config.get('setting.basic.debug.traceLog')) { 40 traceLogger[level]({ 41 desc, 42 message, 43 }); 44 } 45} 46 47export function errorLog(desc: string, message: any) { 48 if (Config.get('setting.basic.debug.errorLog')) { 49 log.error({ 50 desc, 51 message, 52 }); 53 trace(desc, message, 'error'); 54 } 55} 56 57export function devLog( 58 method: 'log' | 'error' | 'warn' | 'info', 59 ...args: any[] 60) { 61 if (Config.get('setting.basic.debug.devLog')) { 62 addLog(method, args); 63 } 64} 65 66export {log}; 67