xref: /MusicFree/src/utils/log.ts (revision 60dec65dd4e0e519df94ce6b01a8af465fa600c7)
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