in child-logger.js [32:82]
function ChildLogger(config) {
this.mainLogger = config.mainLogger;
this.path = config.path;
if (config.extendMeta && !(config.meta || config.metaFilter)) {
throw errors.MetaRequired;
}
this.extendMeta = config.extendMeta;
this.meta = config.meta || {};
this.strict = config.strict;
this.metaFilter = config.metaFilter || [];
this.levels = config.levels || defaultLevels;
this.metaFilter.forEach(function validateFilter(filter) {
if (!filter || !filter.object || typeof filter.object !== 'object') {
throw errors.FilterObjectRequired();
}
if (!filter.mappings || typeof filter.mappings !== 'object') {
throw errors.FilterMappingsRequired();
}
Object.keys(filter.mappings).forEach(function validateMappings(srcName) {
var dstName = filter.mappings[srcName];
if (typeof dstName !== 'string') {
throw errors.FilterBadDst();
}
});
});
if (config.extendMeta && config.mergeParentMeta) {
this.meta = xtend(this.mainLogger.meta, this.meta);
if (this.mainLogger.metaFilter) {
var mergedMetaFilters = [];
mergedMetaFilters.push.apply(mergedMetaFilters, this.mainLogger.metaFilter);
mergedMetaFilters.push.apply(mergedMetaFilters, this.metaFilter);
this.metaFilter = mergedMetaFilters;
}
}
Object.keys(this.levels).forEach(function (levelName) {
if (!this.mainLogger.levels.hasOwnProperty(levelName)) {
if (this.strict) {
throw errors.LevelRequired({level: levelName});
} else {
this[levelName] = noop;
this.mainLogger.warn('Child Logger Disabled level',
{level: levelName});
}
} else {
this[levelName] = makeLogMethod(levelName);
}
}, this);
}