This package contains functions for logging technical messages. Messages can be logged in multiple channels at once.
Creates a log channel. A log channel can be used for performing logic on records, such as, sending messages to a server. A base channel will be created at run-time. When a new channel is created the new channel will inherit all of the base channel receivers, if any.
createChannel( configuration: ChannelConfiguration ): Symbol
-
configuration: object
- name: Symbol - The channel name (in the form of a Symbol).
- active: Record<string, boolean> (optional) - Init enabled/disabled state of receivers. Note: all receivers, except trace, are enabled by default.
-
receivers: ReceiverContainer (optional) - The object of receivers (these receivers will override the base channel receivers). See
The LogReceiverFn function
.
Delete a log channel.
deleteChannel( name: Symbol ): void
- name: Symbol - The name of the channel.
Enable/disable base channel receivers.
enableReceivers( receivers: Record<string, boolean> ): void
- receivers: Record<string, boolean> - Receivers to enable/disable (e.g. { trace: true } will enable the trace receiver).
Sets base channel receivers.
setReceivers( receivers: ReceiverContainer ): void
- receivers: ReceiverContainer - Receivers to enable/disable.
Log an fatal message from a thrown exception.
logException( ex: unknown, message: string, ...args: unknown[] ): Error
- ex: unknown - A value caught by a try/catch block.
- ...args: unknown[] - The message arguments.
- Returns the error ex.
Logs a fatal message.
logFatal( er: unknown, message: string, ...args: unknown[] ): Error
- er: Error - An error.
- message: string - The message.
- ...args: unknown[] - The message arguments.
- Returns the error er.
Logs a non-fatal error message.
logError( message: string, ...args: unknown[] ): void
- message: string - The message.
- ...args: unknown[] - The message arguments.
Logs a warning message.
logWarning( message: string, ...args: unknown[] ): void
- message: string - The message.
- ...args: unknown[] - The message arguments.
Logs an info message.
logInfo( message: string, ...args: unknown[] ): void
- message: string - The message.
- ...args: unknown[] - The message arguments.
Logs an trace message.
logTrace( message: string, ...args: unknown[] ): void
- message: string - The message.
- ...args: unknown[] - The message arguments.
An object of receivers.
- fatal: LogReceiverFn
- error: LogReceiverFn
- warning: LogReceiverFn
- info: LogReceiverFn
- trace: LogReceiverFn
Receiver functions will receive a log record when a message is logged.
receiver( record: LogRecord ): void
import { createChannel } from 'nn-logger';
import { enableReceivers } from 'nn-logger';
import { setReceivers } from 'nn-logger';
import { logFatal } from 'nn-logger';
import { logError } from 'nn-logger';
import { logWarning } from 'nn-logger';
import { logInfo } from 'nn-logger';
import { logTrace } from 'nn-logger';
import type { LogRecord } from 'nn-logger';
function logReceiver ( rec: LogRecord )
{
// Do something with the log.
}
// Setup receivers.
const receivers =
{
fatal: logReceiver,
error: logReceiver,
warning: logReceiver,
info: logReceiver,
trace: logReceiver
}
// Enable/disable base channel receivers.
enableReceivers( { fatal: true, error: true, warning: true, info: false } );
// Set the base channel receivers.
setReceivers( receivers );
// Create a channel, enable all receivers (the trace receiver is disabled by default).
// Use deleteChannel to delete a channel.
const channel = createChannel
( {
name: Symbol( 'channel-name' ),
active: { info: true, trace: true },
receivers
} ); // channel = Symbol( 'channel-name' )
// Log messages.
logError( 'error-message' );
logWarning( 'warning-message' );
logInfo( 'info-message' );
logTrace( 'trace-message' );
try
{
throw Error( 'fatal-error-message' );
} catch ( ex: unknown ) {
// Log messages with an error.
logFatal( ex, 'fatal-error-message' );
}
// Delete a channel.
deleteChannel( channel );