Configuring default logger level
Introduction
A log level is a number that represents the importance of a log message. The higher the number, the more important the
log message is. The default log level is Info
, which means that all log messages except Trace
and Debug
are
logged.
Since the default level is Info
it will skip all the Debug
messages which are important for debugging purposes, in
particular also during development.
Usage
Default log level can be customized in the logger
options of the SapphireClient
.
- CommonJS
- ESM
- TypeScript
const { LogLevel, SapphireClient } = require('@sapphire/framework');
const client = new SapphireClient({ logger: { level: LogLevel.Debug } });
import { LogLevel, SapphireClient } from '@sapphire/framework';
const client = new SapphireClient({ logger: { level: LogLevel.Debug } });
import { LogLevel, SapphireClient } from '@sapphire/framework';
const client = new SapphireClient({ logger: { level: LogLevel.Debug } });
The above will set the default log level to Debug
which will lead to logging the debug messages in console. This is
something which we don't want when application is running in production. To exempt that from logger
during production
we can configure the logger level
dynamically.
Example
- CommonJS
- ESM
- TypeScript
const { LogLevel, SapphireClient } = require('@sapphire/framework');
const client = new SapphireClient({
logger: {
level: process.env.NODE_ENV === 'development' ? LogLevel.Debug : LogLevel.Info
}
});
import { LogLevel, SapphireClient } from '@sapphire/framework';
const client = new SapphireClient({
logger: {
level: process.env.NODE_ENV === 'development' ? LogLevel.Debug : LogLevel.Info
}
});
import { LogLevel, SapphireClient } from '@sapphire/framework';
const client = new SapphireClient({
logger: {
level: process.env.NODE_ENV === 'development' ? LogLevel.Debug : LogLevel.Info
}
});
Above example will set the logger level
to Debug
during development and to Info
during production.
Setting logger level
to a specific level makes logger ignore the lower logger levels. This means that if level is set
to Warn
then logger will not log Info
log messages.