You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

79 lines
2.3 KiB

// logger.ts
import { app } from 'electron';
import log from 'electron-log';
import path from 'node:path';
import { LOG_PATH } from './constant';
// 关闭控制台打印
log.transports.console.level = false;
log.transports.file.level = 'debug';
log.transports.file.maxSize = 10024300; // 文件最大不超过 10M
// 输出格式
log.transports.file.format = '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}]{scope} {text}';
let date = new Date();
let dateStr = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
// 文件位置及命名方式
// 默认位置为:C:\Users\[user]\AppData\Roaming\[appname]\electron_log\
// 文件名为:年-月-日.log
// 自定义文件保存位置为安装目录下 \log\年-月-日.log
log.transports.file.resolvePathFn = () => path.join(LOG_PATH, dateStr + '.log');
// 有六个日志级别error, warn, info, verbose, debug, silly。默认是silly
export default {
info(param: any) {
log.info(param);
},
warn(param: any) {
log.warn(param);
},
error(param: any) {
log.error(param);
},
debug(param: any) {
log.debug(param);
},
verbose(param: any) {
log.verbose(param);
},
silly(param: any) {
log.silly(param);
},
};
app.on('ready', async () => {
// 渲染进程崩溃
// app.on('renderer-process-crashed', (event, webContents, killed) => {
// log.error(
// `APP-ERROR:renderer-process-crashed; event: ${JSON.stringify(
// event,
// )}; webContents:${JSON.stringify(webContents)}; killed:${JSON.stringify(killed)}`,
// );
// });
// // GPU进程崩溃
// app.on('gpu-process-crashed', (event, killed) => {
// log.error(
// `APP-ERROR:gpu-process-crashed; event: ${JSON.stringify(event)}; killed: ${JSON.stringify(
// killed,
// )}`,
// );
// });
// 渲染进程结束
app.on('render-process-gone', async (event, webContents, details) => {
log.error(
`APP-ERROR:render-process-gone; event: ${JSON.stringify(event)}; webContents:${JSON.stringify(
webContents,
)}; details:${JSON.stringify(details)}`,
);
});
// 子进程结束
app.on('child-process-gone', async (event, details) => {
log.error(
`APP-ERROR:child-process-gone; event: ${JSON.stringify(event)}; details:${JSON.stringify(
details,
)}`,
);
});
});