node写日志的简单实现

204 阅读1分钟

以访问日志为例

const fs = require('fs')
const path = require('path')

// 生成write Stream
function createWriteStream(fileName) {
  const fullFileName = path.join(__dirname, '../', '../', 'logs', fileName)
  const writeStream = fs.createWriteStream(fullFileName, {
    flags: 'a'
  })
  return writeStream
}

// 写日志
function writeLog (writeStream, log) {
  writeStream.write(log + '\n')
}

// 写访问日志
const accessWriteStream = createWriteStream('access.log')

function access(log) {
  writeLog(accessWriteStream, log)
}

module.exports = {
  access
}

调用时:

在请求的入口统一配置自己要记录的参数
access(`${req.method} -- ${req.url} -- ${req.headers['user-agent']} -- ${Date.now()}`)