LogoLogo
ChangelogGitHubTwitterGitter
v4.x
v4.x
  • Marble.js
  • Getting started
    • Installation
    • Quick setup
  • HTTP
    • Effects
    • Middlewares
    • Routing
    • Errors
    • Output
    • Context
    • Advanced
      • Logging
      • Validation
      • Server Events
      • Streaming
      • Continuous mode
  • Messaging
    • Core concepts
      • Events
      • Effects
    • Microservices
      • AMQP (RabbitMQ)
      • Redis Pub/Sub
    • CQRS
    • WebSockets
  • Testing
    • HTTP routes testing
  • Other
    • How does it glue together?
    • Migration guides
      • Migration from version 3.x
      • Migration from version 2.x
      • Migration from version 1.x
    • API reference
      • @marblejs/core
        • bindTo
        • bindEagerlyTo
        • createEvent
        • createContextToken
        • operator: matchEvent
        • operator: use
        • operator: act
      • @marblejs/http
        • httpListener
        • r.pipe
        • combineRoutes
        • createServer
      • @marblejs/messaging
        • eventBus
        • messagingClient
        • createMicroservice
        • reply
      • @marblejs/websockets
        • webSocketListener
        • operator: broadcast
        • operator: mapToServer
      • @marblejs/middleware-multipart
      • @marblejs/middleware-cors
      • @marblejs/middleware-io
      • @marblejs/middleware-logger
      • @marblejs/middleware-body
      • @marblejs-contrib/middleware-jwt
        • Token signing
      • @marblejs-contrib/middleware-joi
    • Style Guide
    • FAQ
Powered by GitBook
On this page
  • Installation
  • Importing
  • Type declaration
  • Parameters
  • Usage
  1. Other
  2. API reference

@marblejs/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

$ yarn add @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

filter

<optional> HttpRequest -> boolean

Usage

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

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

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

export const listener = httpListener({
  middlewares,
  effects: [],
});
  1. Customized logging behavior:

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

const middlewares = [
  logger$({
    silent: isTestEnv(),
    filter: req => req.response.statusCode >= 400;
  }),
  ...
];

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

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

Previous@marblejs/middleware-ioNext@marblejs/middleware-body

Last updated 1 year ago