+// Use object for better performances (~ O(1))
+const excludedKeys = {
+ level: true,
+ message: true,
+ splat: true,
+ timestamp: true,
+ label: true
+}
+function keysExcluder (key, value) {
+ return excludedKeys[key] === true ? undefined : value
+}
+
+const loggerFormat = winston.format.printf((info) => {
+ let additionalInfos = JSON.stringify(info, keysExcluder, 2)
+ if (additionalInfos === '{}') additionalInfos = ''
+
+ return `[${info.label}] ${info.timestamp} ${info.level}: ${info.message} ${additionalInfos}`
+})
+
+const timestampFormatter = winston.format.timestamp({
+ format: 'YYYY-MM-dd HH:mm:ss.SSS'
+})
+const labelFormatter = winston.format.label({
+ label
+})
+
+const logger = new winston.createLogger({
+ level: CONFIG.LOG.LEVEL,