express

Logging

Remarks#

morgan is an HTTP request logger middleware for node.js

Installation

First, install the morgan Middleware in your project

npm install --save morgan

Simple Express logging of all request to STDOUT

Add the following code to your app.js file:

var express = require('express')
var morgan = require('morgan')

var app = express()

app.use(morgan('combined'))

app.get('/', function (req, res) {
  res.send('hello, world!')
})

Now when you access your website you will see in the console you used to start the server that the requests are logged

Write Express logs to a single file

First, install fs and path in your project

npm install --save fs path

Add the following code to your app.js file:

var express = require('express')
var fs = require('fs')
var morgan = require('morgan')
var path = require('path')

var app = express()

// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), {flags: 'a'})

// setup the logger
app.use(morgan('combined', {stream: accessLogStream}))

app.get('/', function (req, res) {
  res.send('hello, world!')
})

Now when you access your website you will see a access.log file was created in your project directory

Write Express logs to a rotating log file

First, install fs, file-stream-rotator and path in your project

npm install --save fs file-stream-rotator path

Add the following code to your app.js file:

var FileStreamRotator = require('file-stream-rotator')
var express = require('express')
var fs = require('fs')
var morgan = require('morgan')
var path = require('path')

var app = express()
var logDirectory = path.join(__dirname, 'log')

// ensure log directory exists
fs.existsSync(logDirectory) || fs.mkdirSync(logDirectory)

// create a rotating write stream
var accessLogStream = FileStreamRotator.getStream({
  date_format: 'YYYYMMDD',
  filename: path.join(logDirectory, 'access-%DATE%.log'),
  frequency: 'daily',
  verbose: false
})

// setup the logger
app.use(morgan('combined', {stream: accessLogStream}))

app.get('/', function (req, res) {
  res.send('hello, world!')
})

Now when you access your website you will see a log directory was created and a log file with a name format of access-%DATE%.log was created in your log directory


This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow