@logbee/express
TypeScript icon, indicating that this package has built-in type declarations

0.0.2 • Public • Published

@logbee/express

An ExpressJS middleware which saves the HTTP properties, exceptions and logs to logbee.net.

Install

npm install @logbee/express

Usage

  1. Require/import the logbee library
const { logbee } = require('@logbee/express');

or

import { logbee } from '@logbee/express';
  1. Register the logbee middleware
const app = express();

app.use(logbee.middleware({
    organizationId: '_OrganizationId_',
    applicationId: '_ApplicationId_',
    logbeeApiUri: 'https://api.logbee.net' // or the on-premises logbee endpoint
}));

app.get("/", (req, res) => {
    res.send('Hello World!');
});

// register the exception middleware after the routes declaration
app.use(logbee.exceptionMiddleware());

app.listen(3000, () => {
    console.log('Server is running');
});

Using the logger

logbee creates a logger object that can be accessed using the logbee.logger(req) function.

Log messages can be created using one of the following logger methods: trace, debug, info, warn, error, critical

app.get("/", (req, res) => {
    const logger = logbee.logger(req);
    logger?.info('An info message', 'with', 'multiple', 'args', { 'foo': 'bar' });

    res.send('Hello World!');
});

Logging files

Files can be logged using the logger.logAsFile(content, fileName) method.

app.get("/", (req, res) => {
    const logger = logbee.logger(req);
    logger?.logAsFile(
        '<?xml version="1.0" encoding="UTF-8"?>\
         <note>\
            <to>Tove</to>\
            <from>Jani</from>\
            <heading>Reminder</heading>\
            <body>Don\'t forget me this weekend!</body>\
         </note>', 'reminder.xml');

    res.send('Hello World!');
});

Configuration

logbee.middleware accepts the following configuration options:

logbeeApiUri

The logbee endpoint where the logs will be saved. Default: https://api.logbee.net.

shouldLogRequestBody(req)

Determines if the request.body should be logged or not. Default: true.

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.use(logbee.middleware({
    shouldLogRequestBody: function(req) {
        return true;
    }
}));

shouldLogResponseBody(req, res)

Determines if the response body should be logged or not. By default, all the application/json responses are logged.

app.use(logbee.middleware({
    shouldLogResponseBody: function(req, res) {
        const contentType = res.getHeader('content-type')?.toString()?.toLowerCase() ?? "";
        return ['application/json'].some(item => {
            return contentType.indexOf(item) > -1;
        });
    }
}));

shouldLogRequest(req, res)

Determines if the current request should be logged or not. Default: true.

app.use(logbee.middleware({
    shouldLogRequest: function(req, res) {
        return true;
    }
}));

User-interface

User interface

Package Sidebar

Install

npm i @logbee/express

Homepage

logbee.net

Weekly Downloads

1

Version

0.0.2

License

MIT

Unpacked Size

53 kB

Total Files

39

Last publish

Collaborators

  • catalingavan