LogoLogo
ChangelogGitHubTwitterGitter
v2.x
v2.x
  • Introduction
  • Overview
    • Getting started
    • Effects
    • Routing
    • Middlewares
    • Error handling
    • How does it glue​ together?
  • Advanced
    • Context
    • Server events
    • Validation
    • Streaming
    • Output interceptor
  • WebSockets
    • Getting started
    • Effects
    • Middlewares
    • Error handling
    • Connections handling
  • API Reference
    • core
      • bindTo
      • createServer
      • combineRoutes
      • createContextToken
      • EffectFactory
      • r.pipe
      • httpListener
      • operator: matchEvent
      • operator: use
    • websockets
      • webSocketListener
      • operator: broadcast
      • operator: mapToServer
    • middleware-body
    • middleware-logger
    • middleware-io
    • middleware-jwt
      • Token signing
    • middleware-joi
    • middleware-cors
    • middleware-multipart
  • Other
    • Migration from version 1.x
    • Changelog
    • FAQ
Powered by GitBook
On this page
  • Installation
  • Importing
  • Type declaration
  • Parameters
  • Usage
  1. API Reference

middleware-logger

HTTP request logger middleware for Marble.js

Simple middleware for request logging inside your console. It displays the outgoing request events using the following format:

{HTTP_METHOD} {PATH} {HTTP_STATUS} {TIME}
POST /api/v1/user 200 1ms

Installation

$ npm i @marblejs/middleware-logger

Requires @marblejs/core to be installed.

Importing

import { logger$ } from '@marblejs/middleware-logger';

Type declaration

logger$ :: LoggerOptions -> HttpMiddlewareEffect

Parameters

parameter

definition

options

<optional> LoggerOptions

LoggerOptions

parameter

definition

silent

<optional> boolean

stream

<optional> WritableLike

filter

<optional> (HttpResponse, HttpRequest) => boolean

Usage

  1. Default behaviour. Log every response to process.stdout:

logger.middleware.ts
import { logger$ } from '@marblejs/middleware-logger';

const middlewares = [
  logger$(),
  ...
];

export const app = httpListener({ middlewares, effects: [] });

2. Customized logging behaviour:

logger.middleware.ts
import { logger$ } from '@marblejs/middleware-logger';
import { isTestEnv } from './util';

const middlewares = [
  logger$({
    silent: isTestEnv(),
    stream: createWriteStream(PATH, { flags: 'a' });;
    filter: (res, req) => res.status >= 400;
  }),
  ...
];

export const app = httpListener({ middlewares, effects: [] });
  • silent - When true the logging is turned off (usually useful during testing),

  • stream - Output stream for writing log messages, defaults to process.stdout. In the example above every response will be written to file pointed by provided PATH variable,

  • filter - Filter outgoing responses or incoming requests based on given predicate. For example we can log only HTTP status codes above 400.

Previousmiddleware-bodyNextmiddleware-io

Last updated 5 years ago