* 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
35 lines
859 B
JavaScript
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
|
|
});
|