pixelplanet/src/core/logger.js

76 lines
1.6 KiB
JavaScript

/**
*
* http://tostring.it/2014/06/23/advanced-logging-with-nodejs/
*
*/
import { createLogger, format, transports } from 'winston';
import DailyRotateFile from 'winston-daily-rotate-file';
import { SHARD_NAME } from './config';
export const PIXELLOGGER_PREFIX = (SHARD_NAME)
? `./log/pixels-${SHARD_NAME}-` : './log/pixels-';
const PROXYLOGGER_PREFIX = (SHARD_NAME)
? `./log/proxycheck-${SHARD_NAME}-` : './log/proxycheck-';
const MODTOOLLOGGER_PREFIX = (SHARD_NAME)
? `./log/moderation/modtools-${SHARD_NAME}-` : './log/moderation/modtools-';
const logger = createLogger({
level: 'info',
format: format.combine(
format.splat(),
format.simple(),
),
transports: [
new transports.Console(),
],
});
export const pixelLogger = createLogger({
format: format.printf(({ message }) => message),
transports: [
new DailyRotateFile({
filename: `${PIXELLOGGER_PREFIX}%DATE%.log`,
maxFiles: '14d',
utc: true,
colorize: false,
}),
],
});
export const proxyLogger = createLogger({
format: format.combine(
format.splat(),
format.simple(),
),
transports: [
new DailyRotateFile({
level: 'info',
filename: `${PROXYLOGGER_PREFIX}%DATE%.log`,
maxsize: '10m',
maxFiles: '14d',
utc: true,
colorize: false,
}),
],
});
export const modtoolsLogger = createLogger({
format: format.printf(({ message }) => message),
transports: [
new DailyRotateFile({
level: 'info',
filename: `${MODTOOLLOGGER_PREFIX}%DATE%.log`,
maxSize: '20m',
maxFiles: '14d',
utc: true,
colorize: false,
}),
],
});
export default logger;