I had some trace logs that I only wanted to enable conditionally, eg only when the logging level was set to TRACE.
I couldn’t find a node.js library that enables this kind of logging. For each of them, the logger always evaluated the string input.
Logger.trace(`long running task ${longRunningTask()}`)
The longRunningTask was always ran, even if trace logging was not enabled.
Solution
I created a fork from js-logger, which you can call with a function parameter
Logger.trace(() => `long running task ${longRunningTask()}`)
The logger checks the log level, and only then calls the function. This way the <meta charset="utf-8">longRunningTask is only called when trace logging is enabled
Use it in your project
Add my js-logger fork with
yarn add 'js-logger@https://github.com/tonisives/js-logger'
