日志对于 Web 后台应用来说是必要的,Koa 原生并不支持支持日志模块,所幸 GitHub 已经有很多优秀的 Node.js 日志框架,这节实战将使用 log4js-node 来处理 Koa 的日志,当然也有像 koa-log4 这样的 Koa 中间件对 log4js-node 进行了封装,本节实战也会实现一个中间件来处理日志。
log4js-node的基本使用
log4js-node 是经过对 log4js 框架进行转换来支持 node 的,在开始实战之前,先耐心来看下 log4js 的基本使用方式:
const log4js = require(\”log4js\”); // 引入 log4js
const logger = log4js.getLogger(); // 获得 default category
logger.level = \”debug\”; // 设置 level
logger.debug(\”调试信息\”); // 输出日志
// 输出: [2020-10-31T16:02:24.527] [DEBUG] default – 调试信息
默认的情况下,default 类别(category )的日志 level 是设置为 OFF 的,上面的代码将其设置为 “debug”,这使得调试信息可以输出到 stdout。
再来看一个示例:
const log4js = require(\”log4js\”);
// 对日志进行配置
log4js.configure({
// 指定输出文件类型和文件名
appenders: {
cheese: {
type: \”file\”, filename: \”cheese.log\” } },
// appenders 指定了日志追加到 cheese
// level 设置为 error
categories: {
default: {
appenders: [\”cheese\”], level: \”error\” } }
});
const logger = log4js.getLogger(); // 获取到 default 分类
logger.trace(\”Entering cheese testing\”);
logger.debug(\”Got cheese.\”);
logger.info(\”Cheese is Comté.\”);
logger.warn(\”Cheese is quite smelly.\”);
logger.error(\”Cheese is too ripe!\”); // 从这里开始写入日志文件
logger.fatal(\”Cheese was breeding ground for listeria.\”);
从上面的设置看到 appenders 指定了日志追加到cheese(也就是cheese.log)里面去,level 设置为 “error”,也就是说只有日志等级大于 “error” 的才会添加到 log 文件。
当执行了上面的代码,可以看到项目目录里面多了一个 cheese.log 文件,内如如下:
[2020–10–31T16:26:17.188] [ERROR] default – Cheese is too ripe!
[2020–10–31T16:26:17.194] [FATAL] default – Cheese was breeding ground for listeria.
有关 log4js-node 的更多使用示例可以参考 example.js 以及 examples 目录下的文件。
下面来进入本节的实战…
安装 log4js
前面对 log4js-node 进行了简单介绍,现在来在应用里面使用,首先安装 log4js:
$ npm install log4js —save
设置 log4js
我们修改 config/config.js ,来对 log4js 编写一些配置:
// config/config.js
const CONFIG = {
\”API_PREFIX\”:
评论前必须登录!
注册