express+morgan记录日志

app.js:

const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const history = require('connect-history-api-fallback')
const app = express()
const { light } = require('./router/light')
const { air } = require('./router/air')
const { sale } = require('./router/sale')
const compression = require('compression')
const { createProxyMiddleware } = require('http-proxy-middleware')
const morgan = require('morgan')
//const morganBody = require('morgan-body')

const fs = require('fs')
const FileStreamRotator = require('file-stream-rotator')
const path = require('path')

app.use(compression({ filter: shouldCompress }))
//app.use(history())
//app.use(express.static('D:/zlhx-ui'))
//app.use(express.static('D:/tan-ui'))
//app.use(express.static('../zlhx-ui'))
//app.use(express.static('../blog/docs'))
//app.use(express.static('../tan-ui'))
//app.use(express.static('../air-github/docs'))
//app.use(express.static('public'))
//app.use(express.static('upload'))
app.use(express.static('/temp')) //, { index: '/air/origin/master/index.html'}
app.use(cors())

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())

function shouldCompress(req, res) {
  if (req.headers['x-no-compression']) {
    // don't compress responses with this request header
    return false
  }

  // fallback to standard filter function
  return compression.filter(req, res)
}

// app.use((res, req, next) => {
//   setTimeout(() => {
//     next()
//   }, 4000)
// })

const logDirectory = path.join(__dirname, 'log')

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

// create a rotating write stream
const 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.use(
  morgan(
    function (tokens, req, res) {
      console.log(res)
      return [
        tokens.method(req, res),
        tokens.url(req, res),
        tokens.status(req, res),
        'body:',
        JSON.stringify(req.body)
      ].join(' ')
    },
    { stream: accessLogStream }
  )
)

// morganBody(app, {
//   // .. other settings
//   noColors: true,
//   stream: accessLogStream,
// })

app.get('/', function (req, res) {
  res.redirect('/air/origin/master/#/air/light/extra/home')
})

//知了好学的接口
light(app)

//销售系统
sale(app)

//无代码平台的接口
air(app)

//启动命令:set PORT=3000 && node app
const PORT = process.env.PORT || 81
app.listen(PORT, () => {
  console.log(PORT)
  console.log('hello,world1')
})

access-20211008.log:

POST /api/table/search?id=a&type=666 200 body: {"tableId":"0","page":1,"pageSize":10,"searchParams":{},"loginUserId":null}

posted @ 2021-10-08 16:37  徐同保  阅读(3)  评论(0编辑  收藏  举报  来源