nn-logger
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

nn-logger

This package contains functions for logging technical messages. Messages can be logged in multiple channels at once.

The createChannel function

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.

The deleteChannel function

Delete a log channel.

deleteChannel( name: Symbol ): void

  • name: Symbol - The name of the channel.

The enableReceivers function

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).

The setReceivers function

Sets base channel receivers.

setReceivers( receivers: ReceiverContainer ): void

  • receivers: ReceiverContainer - Receivers to enable/disable.

The logException function

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.

The logFatal function

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.

The logError function

Logs a non-fatal error message.

logError( message: string, ...args: unknown[] ): void

  • message: string - The message.
  • ...args: unknown[] - The message arguments.

The logWarning function

Logs a warning message.

logWarning( message: string, ...args: unknown[] ): void

  • message: string - The message.
  • ...args: unknown[] - The message arguments.

The logInfo function

Logs an info message.

logInfo( message: string, ...args: unknown[] ): void

  • message: string - The message.
  • ...args: unknown[] - The message arguments.

The logTrace function

Logs an trace message.

logTrace( message: string, ...args: unknown[] ): void

  • message: string - The message.
  • ...args: unknown[] - The message arguments.

ReceiverContainer

An object of receivers.

  • fatal: LogReceiverFn
  • error: LogReceiverFn
  • warning: LogReceiverFn
  • info: LogReceiverFn
  • trace: LogReceiverFn

The LogReceiverFn function

Receiver functions will receive a log record when a message is logged.

receiver( record: LogRecord ): void


Usage

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 );

Readme

Keywords

none

Package Sidebar

Install

npm i nn-logger

Weekly Downloads

5

Version

1.0.2

License

ISC

Unpacked Size

17.8 kB

Total Files

5

Last publish

Collaborators

  • nneba13