mirror of
https://github.com/strapi/strapi.git
synced 2025-07-16 13:32:05 +00:00
41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
const { format } = require('winston');
|
|
const { isString } = require('lodash/fp');
|
|
const logErrors = require('./log-errors');
|
|
|
|
const { combine, timestamp, colorize, printf } = format;
|
|
|
|
const defaultTimestampFormat = 'YYYY-MM-DD HH:mm:ss.SSS';
|
|
|
|
/**
|
|
* Create a pretty print formatter for a winston logger
|
|
* @param {string|boolean} timestamps - Enable or disable timestamps print if it's a boolean value. Use the given format for the timestamps if it's a string
|
|
* @param {boolean} colors - Enable or disable the use of colors for the log level
|
|
*/
|
|
module.exports = ({ timestamps = true, colors = true } = {}) => {
|
|
const handlers = [];
|
|
|
|
if (timestamps) {
|
|
handlers.push(
|
|
timestamp({
|
|
format: isString(timestamps) ? timestamps : defaultTimestampFormat,
|
|
})
|
|
);
|
|
}
|
|
|
|
if (colors) {
|
|
handlers.push(colorize());
|
|
}
|
|
|
|
handlers.push(logErrors());
|
|
|
|
handlers.push(
|
|
printf(({ level, message, timestamp }) => {
|
|
return `${timestamps ? `[${timestamp}] ` : ''}${level}: ${message}`;
|
|
})
|
|
);
|
|
|
|
return combine(...handlers);
|
|
};
|