@usvc/logger-request
    TypeScript icon, indicating that this package has built-in type declarations

    0.1.1 • Public • Published

    @usvc/logger-request

    Morgan based logger for usage in a microservices architecture.

    The output logs will include the following properties:

    Key Description
    level This will always be "access"
    method The method of the HTTP request
    url The requested URL
    status The status code of the request
    contentLength The content length
    responseTimeMs The response time in milliseconds
    httpVersion The HTTP version
    referrer The referrer (if applicable)
    remoteHostname The remote hostname (if found)
    remoteAddress The remote IP address
    serverHostname The server hostname as specified in the createLogger method
    time ISO timestamp of the request
    userAgent User agent of the request

    Scope

    • Creates an Express compatible request logger middleware
    • Allow for token extension
    • Allow for specification of a custom logger and log level

    Installation

    npm i @usvc/logger-request;
    # OR 
    yarn add @usvc/logger-request;

    Usage

    // es5:
    const {createLogger} = require('@usvc/logger-request');
    // es6:
    import {createLogger} from '@usvc/logger-request';

    Basic

    const express = require('express');
    // require as ^
    const app = express();
    app.use(createLogger());
    app.listen(...);

    Full Configuration

    const express = require('express');
    // require as ^
    const app = express();
    app.use(createLogger({
     
    }));
    app.listen(...);

    API Documentaiton

    createLogger(:options)

    Creates the request logger middleware and returns an Express compatible middleware that you can app.use(...).

    Parameters

    Key Defaults To Description
    additionalTokens [] Additional tokenizers. Each item in the array should be of the form {id: 'some-property', fn: (req, res) => (/*your code here*/)}.
    hostname os.hostname() || process.env.HOSTNAME || 'unknown' The host name to use for the server in the logs
    logger console The logger to be used.
    level info The level of the logger to be used.

    getZipkinTokenizers()

    This function returns an array of tokenizers that you can use in the additionalTokenizers option in createLogger().

    These tokenizers depend on there being a .context property in the Request object passed by Express. This is automatically done if you are using the Zipkin tracer as defined in @usvc/tracer.

    Using the returned tokenizers will result in the following additional keys in the log:

    Key Description
    traceId The trace ID
    spanId The span ID
    parentSpanId The parent span ID
    sampled Indication whether the request was sampled or not

    Examples

    Usage with ES5

    Goto: ./example/es5

    Or run: npm run eg:es5

    Usage with ES6

    Goto: ./example/es6

    Or run: npm run eg:es6

    Usage with Winston

    Goto: ./example/winston

    Or run: npm run eg:winston

    Development

    See the development instructions on the main repository's README.

    License

    This package is licensed under the MIT license.

    View the license at LICENSE.

    Changelog

    WIP

    Contributors

    Name Email Website About Me
    Joseph dev-at-joeir-dot-net https://github.com/zephinzer N/A

    Cheers

    Install

    npm i @usvc/logger-request

    DownloadsWeekly Downloads

    0

    Version

    0.1.1

    License

    MIT

    Unpacked Size

    23.8 kB

    Total Files

    10

    Last publish

    Collaborators

    • zephinzer