Files
kami-parse-server/src/logger.js
Florent Vilmart 3079270b3e Optimizations (#4135)
* removes costly json serialization to InMemoryCacheAdapter

* Always cache a copy of the array

* Use own mapValues

* Makes sure we dont make unnecessary calls to the logger

* Do not bypass loggers with silent logging (only applies to stdout)

* warn is not warning

* use ===

* Wrap logRequest / logResponse in the loggerController for more granular control

Also give the ability to pass functions to the logger so we don't serialize too early in JSON (costly)

* reconfiguring winston would override the transports levels and make subsequent tests fail
2017-09-04 20:47:49 -04:00

35 lines
859 B
JavaScript

'use strict';
import defaults from './defaults';
import { WinstonLoggerAdapter } from './Adapters/Logger/WinstonLoggerAdapter';
import { LoggerController } from './Controllers/LoggerController';
function defaultLogger() {
const options = {
logsFolder: defaults.logsFolder,
jsonLogs: defaults.jsonLogs,
verbose: defaults.verbose,
silent: defaults.silent };
const adapter = new WinstonLoggerAdapter(options);
return new LoggerController(adapter, null, options);
}
let logger = defaultLogger();
export function setLogger(aLogger) {
logger = aLogger;
}
export function getLogger() {
return logger;
}
// for: `import logger from './logger'`
Object.defineProperty(module.exports, 'default', {
get: getLogger
});
// for: `import { logger } from './logger'`
Object.defineProperty(module.exports, 'logger', {
get: getLogger
});