init
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// 简单 logger,和 Go 端行为接近;若设置 LOG_FILE 则同时追加到该文件(便于打包 exe 双击时查日志)
|
||||
function log(level, msg, ...args) {
|
||||
const time = new Date().toISOString();
|
||||
let rest = '';
|
||||
if (args.length && typeof args[0] === 'object' && args[0] !== null && !Array.isArray(args[0])) {
|
||||
rest = ' ' + JSON.stringify(args[0]);
|
||||
} else if (args.length) {
|
||||
rest = ' ' + args.map((a) => (typeof a === 'object' ? JSON.stringify(a) : String(a))).join(' ');
|
||||
}
|
||||
const line = `${time} [${level}] ${msg}${rest}\n`;
|
||||
try {
|
||||
console.log(line.trimEnd());
|
||||
} catch (_) {}
|
||||
const logFile = process.env.LOG_FILE;
|
||||
if (logFile) {
|
||||
try {
|
||||
const dir = path.dirname(logFile);
|
||||
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
||||
fs.appendFileSync(logFile, line);
|
||||
} catch (_) {}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
info(msg, ...args) {
|
||||
log('INFO', msg, ...args);
|
||||
},
|
||||
infow(msg, ...args) {
|
||||
log('INFO', msg, ...args);
|
||||
},
|
||||
warn(msg, ...args) {
|
||||
log('WARN', msg, ...args);
|
||||
},
|
||||
warnw(msg, ...args) {
|
||||
log('WARN', msg, ...args);
|
||||
},
|
||||
error(msg, ...args) {
|
||||
log('ERROR', msg, ...args);
|
||||
},
|
||||
errorw(msg, ...args) {
|
||||
log('ERROR', msg, ...args);
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user