codimd/lib/logger.ts

47 lines
952 B
TypeScript
Raw Normal View History

import {createLogger, format, transports, Logger} from "winston";
2015-06-01 18:04:25 +08:00
type CodiMDLogger = Logger & {
stream: any
setLevel?: (string) => void
}
let defaultFormatter = format.combine(
format.timestamp(),
format.splat(),
format.json()
)
if (process.env.NODE_ENV === 'development' || !process.env.NODE_ENV) {
defaultFormatter = format.combine(
format.timestamp(),
format.align(),
format.splat(),
format.prettyPrint(),
format.colorize(),
format.errors({stack: true}),
format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
)
}
const logger: CodiMDLogger = createLogger({
level: 'debug',
format: defaultFormatter,
transports: [
new transports.Console({
handleExceptions: true
})
],
exitOnError: false
})
logger.stream = {
write: function (message, encoding) {
logger.info(message)
}
}
logger.setLevel = function (level) {
logger.level = level
}
export = logger