Package detail

seq-logging

datalust257.2kApache-2.03.0.0

Sends structured log events to the Seq HTTP ingestion API

seq, logging

readme

Seq Logging for JavaScript Build Publish NPM

This library makes it easy to support Seq from Node.js logging libraries, including Winston via winston-seq, Pino via pino-seq, Bunyan via bunyan-seq, and Ts.ED logger via @tsed/logger-seq. It is not expected that applications will interact directly with this package.

Requiring for Node

import { Logger } from 'seq-logging';

Requiring for a browser

Using seq-logging in a browser context is the same, except the module to import is seq-logging/browser.

import { Logger } from 'seq-logging/browser';

Usage

A Logger is configured with serverUrl, and optionally apiKey as well as event and batch size limits. requestTimeout can be used to adjust timeout for stalled connections, default: 30s.

import process from 'process';
import { Logger } from 'seq-logging';

const logger = new Logger({ serverUrl: 'http://localhost:5341' });

logger.emit({
    timestamp: new Date(),
    level: 'Information',
    messageTemplate: 'Hello for the {n}th time, {user}!',
    properties: {
        user: process.env.USERNAME,
        n: 20
    }
});

logger.close();

Events are sent using the emit() method, that internally performs asynchronous batching based on payload size.

When the application exits, close() ensures all buffered events are written. This can be done at any time otherwise using the flush() method. Both of these methods return promises indicating completion.

Implementations