Logo Vincent
返回文章列表

Node.js-WebServer开发实践:本地日志

Node.js
Node.js-WebServer开发实践:本地日志

【前言】

本地日志是服务端开发中必备的能力,

在nodejs web server的开发过程中,

可以使用log4js实现本地日志能力,

【qiao-log】

log4js的使用可以查看官网文档,

这里封装了一个npm包,欢迎使用: https://www.npmjs.com/package/qiao-log

默认输出日志到控制台和本地,

本地输出的日志使用datefile方式,

对应的配置项如下,

  {
    appenders: {
      stdout: {
        type: 'stdout',
      },
      datefile: {
        type: 'dateFile',
        pattern: 'yyyy-MM-dd-hh',
        filename: 'log.log',
        keepFileExt: true,
      },
    },
    categories: {
      default: {
        level: 'debug',
        appenders: ['stdout', 'datefile'],
      },
    },
  }

使用方法如下

1. 创建logger,其中options非必选

const Logger = require('qiao-log');
const logger = Logger(options);

2. 打印日志

logger.debug;
logger.info;
logger.warn;
logger.error;

效果如下

1. 在控制台输出日志

2. 在对应的目录下输出日志

【qiao-z中使用】

qiao-z是一个极简的nodejs web server框架,

详见: https://qiao-z.vincentqiao.com/#/

可以在qiao-z中很方便的使用qiao-log插件来写本地日志

初始化时传入qiao-log插件和log-options,如下

// options
const options = {
  // log
  log: require('qiao-log'),
  logOptions: require('./server/log-options.js')(),
};

// qz
const qz = require('qiao-z');

// app
const app = qz(options);

需要写本地日志的地方可以使用req.logger写日志,如下

req.logger.error(error);

log-options.js内容如下

/**
 * log options
 * @returns
 */
module.exports = () => {
  // log options
  const logLevel = 'debug';
  const logPattern = 'yyyy-MM-dd-hh';
  const logPath = require('path').resolve(__dirname, '../logs/qiao-z.log');

  return {
    appenders: {
      stdout: {
        type: 'stdout',
      },
      datefile: {
        type: 'dateFile',
        pattern: logPattern,
        filename: logPath,
        keepFileExt: true,
      },
    },
    categories: {
      default: {
        level: logLevel,
        appenders: ['stdout', 'datefile'],
      },
    },
  };
};

【总结】

1. log4js介绍,https://www.npmjs.com/package/log4js

2. qiao-log介绍, https://code.insistime.com/#/qiao-log

3. 在qiao-z中使用qiao-log插件,  https://qiao-z.vincentqiao.com/#/plugins/logger

© 2026 vincentqiao.com . 保留所有权利。