alwaysai
Version:
The alwaysAI command-line interface (CLI)
33 lines (29 loc) • 1 kB
text/typescript
import * as winston from 'winston';
import 'winston-daily-rotate-file';
import * as path from 'path';
import { AAI_DIR } from '../paths';
import { ALWAYSAI_LOG_LEVEL, ALWAYSAI_LOG_TO_CONSOLE } from '../environment';
const LOG_LEVEL = ALWAYSAI_LOG_LEVEL || 'info';
const transports = ALWAYSAI_LOG_TO_CONSOLE
? [new winston.transports.Console({ level: LOG_LEVEL })]
: [
new winston.transports.DailyRotateFile({
filename: path.join(AAI_DIR, 'cli-logs', 'cli-logs.txt'),
maxSize: '5m',
maxFiles: '2d'
})
];
export const logger = winston.createLogger({
level: LOG_LEVEL,
format: winston.format.combine(
winston.format.timestamp(),
winston.format.errors({ stack: true }),
winston.format.splat(),
winston.format.simple(),
winston.format.printf(({ timestamp = '', level = '', message = '' }) => {
return `[${timestamp}] ${level}: ${message}`;
})
),
transports
});
logger.info(`Initialized logger with log level: ${LOG_LEVEL}`);