Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ewl

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ewl

EWL provides common defaults for logging in an express application using winston.

  • 1.2.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

EWL

License Current Version npm

EWL (express-winston-logger) provides common defaults for logging in an express application using winston. It is pre-configured with request tracing enabled and extends some of the features provided by express-winston, e.g. body blacklisting redaction.

Installation

yarn add ewl

Usage

import { Ewl } from 'ewl';

const ewl = new Ewl();
ewl.debug('This logs to the console by default.');

Basic Express Example

index.ts:

import { Application } from 'express';

import { ewl, initEwl } from './logger';

const app = express() as Application;
initEwl(app);

const port = 3000;
app.listen(port, () => {
  ewl.debug(`App: Listening on port ${port}!`);
});

logger/index.ts:

import { Application } from 'express';
import { Ewl, LogLevel } from 'ewl';

export let ewl: Ewl;

export function initEwl(app: Application): void {
  ewl = new Ewl({
    enableRequestLogging: true,
    environment: process.env.ENVIRONMENT || 'development',
    label: 'app',
    logLevel: (process.env.LOG_LEVEL as LogLevel) || 'error',
    useLogstashFormat: false,
    version: process.env.VERSION || 'unknown',
  });

  // Use context middleware to inject the request id.
  app.use(ewl.contextMiddleware);

  // Use request middleware to inject express metadata.
  app.use(ewl.requestMiddleware);
}

Basic NestJS Example

main.ts:

import { NestFactory } from '@nestjs/core';

import { Ewl, LogLevel } from 'ewl';

import { AppModule } from './app.module';

async function bootstrap() {
  const ewl = new Ewl({
    enableRequestLogging: true,
    environment: process.env.ENVIRONMENT || 'development',
    label: 'app',
    logLevel: (process.env.LOG_LEVEL as LogLevel) || 'error',
    useLogstashFormat: false,
    version: process.env.VERSION || 'unknown',
  });

  // Set the default NestJS logger, allowing EWL to be the proxy.
  const app = await NestFactory.create(AppModule, { logger: ewl });

  // Use context middleware to inject the request id.
  app.use(ewl.contextMiddleware);

  // Use request middleware to inject express metadata.
  app.use(ewl.requestMiddleware);

  ewl.debug('Starting application on localhost:3000');

  await app.listen(3000, 'localhost');
}

bootstrap();

Customizing express-winston Request Logger Middleware

const ewl = new Ewl({
  enableRequestLogging: false,
  requestLoggingOptions: {
    bodyBlacklist: ['accessToken', 'password', 'refreshToken'],
    colorize: true,
    expressFormat: true,
    headerBlacklist: ['cookie', 'token'],
    meta: true,
    metaField: 'express',
    requestWhitelist: ['body', 'headers', 'method', 'params', 'query', 'url'],
    responseWhitelist: ['body', 'headers', 'statusCode'],
    statusLevels: true,
  },
});

// Use request middleware to inject express metadata.
app.use(ewl.requestMiddleware);

License

MIT License

Contributing

Contributions are encouraged, please see further details below:

Pull Requests

Here are some basic rules to follow to ensure timely addition of your request:

  1. Match coding style (braces, spacing, etc.).
  2. If it is a feature, bugfix, or anything please only change the minimum amount of code required to satisfy the change.
  3. Please keep PR titles easy to read and descriptive of changes, this will make them easier to merge.
  4. Pull requests must be made against the main branch. Any other branch (unless specified by the maintainers) will get rejected.
  5. Check for existing issues first, before filing a new issue.

Keywords

FAQs

Package last updated on 26 Jul 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc