mirror of
https://github.com/log4js-node/log4js-node.git
synced 2025-12-08 19:26:01 +00:00
feat: inherit appenders and level from base
This commit is contained in:
parent
a81bf78d50
commit
fa7c5ca1fb
@ -24,36 +24,32 @@ function inheritFromParent(config, category, categoryName) {
|
||||
|
||||
|
||||
if (!parentCategory) {
|
||||
// parent is missing, may need to implicitly create it, so that it can inherit from its parents
|
||||
if (parentCategoryName.lastIndexOf('.') >= 0) { // don't create a missing root category, it can inherit nothing
|
||||
parentCategory = { inherit: true, appenders: [] };
|
||||
}
|
||||
// parent is missing, so implicitly create it, so that it can inherit from its parents
|
||||
parentCategory = { inherit: true, appenders: [] };
|
||||
}
|
||||
|
||||
if (parentCategory) {
|
||||
// make sure parent has had its inheritance taken care of before pulling its properties to this child
|
||||
inheritFromParent(config, parentCategory, parentCategoryName);
|
||||
// make sure parent has had its inheritance taken care of before pulling its properties to this child
|
||||
inheritFromParent(config, parentCategory, parentCategoryName);
|
||||
|
||||
// if the parent is not in the config (because we just created it above),
|
||||
// and it inherited a valid configuration, add it to config.categories
|
||||
if (!config.categories[parentCategoryName]
|
||||
&& parentCategory.appenders
|
||||
&& parentCategory.appenders.length
|
||||
&& parentCategory.level) {
|
||||
config.categories[parentCategoryName] = parentCategory;
|
||||
}
|
||||
|
||||
category.appenders = category.appenders || [];
|
||||
category.level = category.level || parentCategory.level;
|
||||
|
||||
// merge in appenders from parent (parent is already holding its inherited appenders)
|
||||
parentCategory.appenders.forEach((ap) => {
|
||||
if (!category.appenders.includes(ap)) {
|
||||
category.appenders.push(ap);
|
||||
}
|
||||
});
|
||||
category.parent = parentCategory;
|
||||
// if the parent is not in the config (because we just created it above),
|
||||
// and it inherited a valid configuration, add it to config.categories
|
||||
if (!config.categories[parentCategoryName]
|
||||
&& parentCategory.appenders
|
||||
&& parentCategory.appenders.length
|
||||
&& parentCategory.level) {
|
||||
config.categories[parentCategoryName] = parentCategory;
|
||||
}
|
||||
|
||||
category.appenders = category.appenders || [];
|
||||
category.level = category.level || parentCategory.level;
|
||||
|
||||
// merge in appenders from parent (parent is already holding its inherited appenders)
|
||||
parentCategory.appenders.forEach((ap) => {
|
||||
if (!category.appenders.includes(ap)) {
|
||||
category.appenders.push(ap);
|
||||
}
|
||||
});
|
||||
category.parent = parentCategory;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user