UNPKG

sword-logger

Version:
82 lines (62 loc) 2.55 kB
# sword-logger [![NPM version](https://badge.fury.io/js/sword-logger.svg)](https://npmjs.org/package/sword-logger) [![Build Status](https://travis-ci.org/gejiawen/sword-logger.svg?branch=master)](https://travis-ci.org/gejiawen/sword-logger) > logger middleware for sword system ## Installation ```sh $ npm install --save sword-logger ``` ## Usage ```js var koa = require('koa') var swordLogger = require('sword-logger'); koa.use(swordLogger(opts)) ``` log file eg, `sword-logger-2016-9-26.log`, log file content eg, ``` {"name":"sword-logger-2016-9-26","hostname":"Gejiawen.local","pid":71410,"level":30,"category":"template","req_id":"06b0bb2e-72dd-449e-b693-cef8738bdd85","label":"start","msg":"POST localhost:8000/user","time":"2016-09-26T10:32:08.472Z","v":0} {"name":"sword-logger-2016-9-26","hostname":"Gejiawen.local","pid":71410,"level":30,"category":"template","req_id":"06b0bb2e-72dd-449e-b693-cef8738bdd85","label":"finished","status":200,"duration":1,"msg":"POST localhost:8000/user 200 1ms","time":"2016-09-26T10:32:08.473Z","v":0} ``` extra field as follows, - `category` - `req_id` - `label` - `duration` - `template` - `request` - `response` ## Configuration `opts` default value as follows, ``` { "logFolder": "./logs", "logFilePrefix": "sword-logger", "logFileSuffix": ".log", "logRecordName": "sword-logger-yyyy-m-dd", "enableLogSrc": false, "enableSaveInterval": false, "logSaveInterval": 6e4, "enableSaveBuffer": false, "logSaveBuffer": 100, "enableReqTimeoutLimit": false, "reqTimeoutLimit": 1e3, "enableRequestDetail": false, "enableResponseDetail": false, "enableTemplateDetail": false } ``` - `logFolder`, log folder - `logFilePrefix`, log file prefix - `logFileSuffix`, log file suffix - `logRecordName`, logger instance name - `enableLogSrc`, enable log src and line number or not - `enableSaveInterval`, enable write to log file by interval or not - `logSaveInterval`, interval time, default is 60000ms - `enableSaveBuffer`, enable write to log file by buffer or not - `logSaveBuffer`, buffer records number, default is 100 - `enableReqTimeoutLimit`, enable request timeout limit or not - `reqTimeoutLimit`, request timeout limit, default is 1000ms, sword-logger use `WARN` level when over request timeout limit - `enableRequestDetail`, enable request log detail or not - `enableResponseDetail`, enable response log detail or not - `enableTemplateDetail`, enable template render log or not ## License MIT © [gejiawen](http://blog.gejiawen.com)