Files
XCDesktop/remote/src/utils/logger.js
2026-03-08 01:34:54 +08:00

47 lines
1.2 KiB
JavaScript

const winston = require('winston');
const path = require('path');
const fs = require('fs');
const paths = require('./paths');
const logDir = path.join(paths.getBasePath(), 'logs');
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir, { recursive: true });
}
const baseLogger = winston.createLogger({
level: process.env.LOG_LEVEL || 'info',
format: winston.format.combine(
winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
winston.format.errors({ stack: true }),
winston.format.splat(),
winston.format.json()
),
defaultMeta: { service: 'remote-screen' },
transports: [
new winston.transports.File({
filename: path.join(logDir, 'error.log'),
level: 'error'
}),
new winston.transports.File({
filename: path.join(logDir, 'combined.log')
})
]
});
if (process.env.NODE_ENV !== 'production' && !process.pkg) {
baseLogger.add(new winston.transports.Console({
format: winston.format.combine(
winston.format.colorize(),
winston.format.simple()
)
}));
}
function createLogger(moduleName) {
return baseLogger.child({ module: moduleName });
}
module.exports = baseLogger;
module.exports.createLogger = createLogger;