express-file-logger

    1.0.7 • Public • Published

    Express-File-Logger


    A lightweight, plug-and-play library that logs to a file every access made on an Express Server.


    Install

    npm install express-file-logger
    

    General Info

    With this library, all the hits on an Express' endpoint will be recorded on a text file.

    The resulting file will record each access on one or more lines, like the example below:

    28/03/2021 00:26:15 [201.23.22.04] (GET) /
    28/03/2021 00:26:19 [201.23.22.04] (POST) /api/user/register
      {"name":"Eduardo","email":"none@moment.com","password":"pass123"}
    

    Where:

    • 28/03/2021 00:26:15: This field represents the timestamp of the log event
    • [201.23.22.04]: This is the IP address of the visitor
    • (GET), (POST), (HEAD), (PUT), etc: This is the HTTP method of the request
    • /api/user/register: The path of the endpoint
    • {"name":"Eduardo","email":"none@moment.com","password":"pass123"}: The body of the request, if any

    Basic Usage

    To use this library, you only need a valid Express Application object.

    Before using it, make sure both libraries are properly installed on your system:

    npm install express express-file-logger
    

    Simple Example

    Below is an example of how to use this tool.

    1. Import the express library
    2. Create an Express Application
    3. Make sure to use the express.json() middleware before importing this library to have access to the body contents of the requests
    4. Import the express-file-logger, passing the reference to the Express Application that was created in step 2
    5. With the default settings, the log will be saved on your server at '/logs/general_access.log'

    Code example

    // Import the Express library and get the application reference
    const express = require('express')
    const app = express()
    
    // This is important if you want the body of the request to be included on the logs
    app.use(express.json())
    
    // Import the Express-File-Logger, and initialize it with the Express Application
    require('express-file-logger')(app)
    
    app.get('/', (req, res) => {
      res.send('Hi! Very nice to see you around here!')
    })
    
    app.listen(3000, console.log('Server is listening on port 3000'))

    Options

    You can set the following options:

    • basePath
      • Sets the folder where the log file will be saved.
      • Default value is logs
    • fileName
      • The name used for the file
      • Default value is general_access.log
    • ip
      • Boolean value that indicates if the IP address of the visitor will be logged
      • Default value is true
    • showOnConsole
      • Boolean that indicates if the record will also be printed on console
      • Default value is true
    • bodyDetails
      • Boolean that indicates if the body details will be logged
      • Default value is true

    These options can be defined on an object and passed in when importing the library:

    const express = require('express')
    const app = express()
    app.use(express.json())
    
    const myOptions = {
      basePath: 'mylogs',
      fileName: 'mysite.log',
      ip: false,
      showOnConsole: false
    }
    require('express-file-logger')(app, myOptions)
    ...


    Changelog

    v1.0.6

    • Better documentation

    v1.0.5

    • For better report's visualization, the symbom └─ is now included when the information is span for more than one line.

    Previous versions

    • Changed the method used to check if the Express Object is valid
    • Fixes on the text that can be printed on console
    • Other minor fixes
    • README.md changed with better examples on how to use the library

    Contact

    Install

    npm i express-file-logger

    DownloadsWeekly Downloads

    27

    Version

    1.0.7

    License

    MIT

    Unpacked Size

    8.26 kB

    Total Files

    4

    Last publish

    Collaborators

    • eduardo-stuart