koa2-request-log
v1.0.1
Published
A koa middleware for logging http requests.
Downloads
51
Maintainers
Readme
koa2-request-log
A koa middleware for logging http requests.
Install
$ npm install koa2-request-log --save
Usage
Typescript:
import * as Koa from 'koa'
import Logger from 'koa2-request-log'
const app = new Koa()
const logger = (new Logger()).generate() // default setting
const loggerWithOpts = (new Logger()).generate({
logColor: '#000',
stream: process.stdout, // log at console or you can write to a file
logFmt: ':method :path :status',
skip(req, res) {
return res.status >= 400
}
}) // log with some options
app.use(logger)
app.use(loggerWithOpts) // could use multiple loggers
app.listen(3000, () => {
console.log('app start')
})
Javascript:
const Koa = require('koa')
const Logger = require('koa2-request-log').default
const app = new Koa()
const logger = (new Logger()).generate()
const loggerWithOpts = (new Logger()).generate({
logColor: '#000',
stream: process.stdout,
logFmt: ':method :path :status',
skip(req, res) {
return res.status >= 400
}
})
app.use(logger)
app.use(loggerWithOpts)
app.listen(3000, () => {
console.log('app start')
})
Options param
logColor
Define the log color via the hex string(eg.#000
) or chalk wrapper(chalk.rgb(0, 0, 0)
).
stream
Using node writable stream
to define the log output location.e.g.process.stdout
.
Output the log to a file:
const fs = require('fs')
const stream = fs.createWriteStream(path.join(__dirname, 'log/app.log'), {
flags: 'a'
})
app.use(logger({
stream
}))
skip
Function to determine if log is skipped,defaults to false.The function could get the koa request object and koa response object as params: skip(req, res)
.
logFmt
Customize the log output format.For example::method --> :path
.
logFmt fields
:protocol
The protocol of the request.e.g.http
.
:http-version
Http version of the request.e.g.1.1
.
:method
Http method of the request.e.g.GET
.
:path
Http path of the request.e.g./user
.
:status
Http status of response.e.g.200
.
:response-time
Http response time of response.e.g.200ms
.
:request-at
Request initiation time.e.g.Sat Feb 23 2019 11:57:30 GMT+0800
.
:req[header]
Get Http request header.e.g.:req[host]
--> localhost:3002.
:res[header]
Get Http response header.e.g.:res[content-length]
--> 4.