-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlogger.ts
More file actions
38 lines (32 loc) · 1.05 KB
/
logger.ts
File metadata and controls
38 lines (32 loc) · 1.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import fs from 'fs';
import path from 'path';
import { createLogger, format, transports } from 'winston';
const logDir = '/home/zk/logs';
const logFile = path.join(logDir, 'codepatchwork.log');
if (!fs.existsSync(logDir)) {
try {
fs.mkdirSync(logDir, { recursive: true });
console.log(`✅ Created log directory: ${logDir}`);
} catch (err) {
console.error(`❌ Failed to create log directory: ${logDir}`, err);
}
}
const logger = createLogger({
level: 'info',
format: format.combine(
format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
format.printf(({ timestamp, level, message, ...meta }) => {
const metaString = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : '';
return `${timestamp} [${level}]: ${message}${metaString}`;
})
),
transports: [
new transports.Console(),
new transports.File({ filename: logFile })
]
});
logger.on('error', (err) => {
console.error('❌ Winston internal logging error:', err);
});
logger.info('🧪 Winston logger initialized and ready.');
export default logger;