The LevelSelector type is used throughout the library (in Configuration.activeLevel, Configuration.filters, GlobalStore.addListener, and GlobalStore.tools.filterByLevel) to allow flexible selection of one or more log levels.
Supported formats for LevelSelector include:
*: Selects all log levels.string: A single level name (e.g., 'info').number: A single level value.string[] or number[]: An array of specific levels.[string, '-', string] or [number, '-', number]: A range of levels (e.g., ['alert', '-', 'warn']).
import adze, { setup } from 'adze';
const store = setup();
// Add a listener that selects ALL log levels.
store.addListener('*', (log: Log) => {
/* Do something */
});
// Add a listener that selects a single log level by name.
store.addListener('info', (log: Log) => {
/* Do something with info logs */
});
// Add a listener that selects both alert and error log levels by name.
store.addListener(['alert', 'error'], (log: Log) => {
/* Do something with the alert and error logs */
});
// Or select a range of values by their name.
store.addListener(['alert', '-', 'warn'], (log: Log) => {
/* Do something with the alert, error, and warn logs */
});
// Alternatively, select alert and error logs by their level values.
store.addListener([0, 1], (log: Log) => {
/* Do something with the alert and error logs */
});
// Or select a range of logs by their level values.
store.addListener([0, '-', 3], (log: Log) => {
/* Do something with the alert, error, warn, and info logs */
});