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