Skip to content

Commit

Permalink
feat: add evaluateArgsThatAreFunctions option
Browse files Browse the repository at this point in the history
  • Loading branch information
gaelhameon committed Mar 16, 2022
1 parent 58cfdc3 commit aeb9404
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 2 deletions.
20 changes: 18 additions & 2 deletions lib/categories.js
Expand Up @@ -140,6 +140,7 @@ configuration.addListener((config) => {
});

const setup = (config) => {
const { evaluateArgsThatAreFunctions: globalEvaluateArgsThatAreFunctions = false } = config;
categories.clear();

const categoryNames = Object.keys(config.categories);
Expand All @@ -149,12 +150,17 @@ const setup = (config) => {
category.appenders.forEach((appender) => {
categoryAppenders.push(appenders.get(appender));
debug(`Creating category ${name}`);
const {
level, enableCallStack = false,
evaluateArgsThatAreFunctions = globalEvaluateArgsThatAreFunctions
} = category;
categories.set(
name,
{
appenders: categoryAppenders,
level: levels.getLevel(category.level),
enableCallStack: category.enableCallStack || false
level: levels.getLevel(level),
enableCallStack,
evaluateArgsThatAreFunctions
}
);
});
Expand Down Expand Up @@ -203,12 +209,22 @@ const setEnableCallStackForCategory = (category, useCallStack) => {
configForCategory(category).enableCallStack = useCallStack;
};

const getEvaluateArgsThatAreFunctionsForCategory = (category) => {
return configForCategory(category).evaluateArgsThatAreFunctions === true;
};
const setEvaluateArgsThatAreFunctionsForCategory = (category, evaluateArgsThatAreFunctions) => {
configForCategory(category).evaluateArgsThatAreFunctions = evaluateArgsThatAreFunctions;
};

module.exports = categories;
module.exports = Object.assign(module.exports, {
appendersForCategory,
getLevelForCategory,
setLevelForCategory,
getEnableCallStackForCategory,
setEnableCallStackForCategory,
getEvaluateArgsThatAreFunctionsForCategory,
setEvaluateArgsThatAreFunctionsForCategory,
init,
});

11 changes: 11 additions & 0 deletions lib/logger.js
Expand Up @@ -79,6 +79,14 @@ class Logger {
categories.setEnableCallStackForCategory(this.category, bool === true);
}

get evaluateArgsThatAreFunctions() {
return categories.getEvaluateArgsThatAreFunctionsForCategory(this.category);
}

set evaluateArgsThatAreFunctions(bool) {
categories.setEvaluateArgsThatAreFunctionsForCategory(this.category, bool === true);
}

log(level, ...args) {
let logLevel = levels.getLevel(level);
if (!logLevel) {
Expand All @@ -96,6 +104,9 @@ class Logger {

_log(level, data) {
debug(`sending log data (${level}) to appenders`);
if (this.evaluateArgsThatAreFunctions) {
data = data.map((e) => typeof e === 'function' ? e() : e);
}
const loggingEvent = new LoggingEvent(
this.category,
level,
Expand Down

0 comments on commit aeb9404

Please sign in to comment.