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