安装node环境
因为此框架是基于node.js的,安装node是必须的进行的第一步,这里不再详细介绍
- 当前环境
网络异常,图片无法展示
|
安装koa(我们使用淘宝镜像进行安装)
# 全局安装koa脚手架 cnpm install koa-generator -g # 创建新项目 koa2 my_server # 打开新建的项目 cd my_server # 安装依赖 yarn 复制代码
安装完成后,执行npm dev,浏览器输入localhost:3000,展示如下页面,即koa2环境搭建成功
- 控制台
网络异常,图片无法展示
|
- 浏览器
网络异常,图片无法展示
|
入口文件在 bin/www
里面
安装logjs插件
网络异常,图片无法展示
|
安装log4js
npm install log4js # 或者 yarn add log4js 复制代码
配置log4js
网络异常,图片无法展示
|
创建一个utils文件夹
,创建log4j.js
注释都在代码上面,有啥问题欢迎骚扰我
/** * 日志存储 * @auther 何小玍。 * @time 2021/07/28 22:11 */ const log4j = require('log4js') const levels = { 'trace' : log4j.levels.TRACE, 'debug' : log4j.levels.DEBUG, 'info' : log4j.levels.INFO, 'warn' : log4j.levels.WARN, 'error' : log4j.levels.ERROR, 'fatal' : log4j.levels.FATAL } // log4j配置 log4j.configure({ appenders: { console: { type: 'console' }, info: { type: 'file', filename: 'logs/all-logs.log' }, error: { type: 'dateFile', filename: 'logs/log', pattern: 'yyyy-MM-dd.log', alwaysIncludePattern: true // 设置文件名称为 filename + pattern } }, categories: { default: { appenders: [ 'console' ], level: 'debug' }, info: { appenders: [ 'info', 'console' ], level: 'info' }, error: { appenders: [ 'error', 'console' ], level: 'error' } } }) /** * 日志输出 level为bug * @param { string } content */ exports.debug = ( content ) => { let logger = log4j.getLogger('debug') logger.level = levels.debug logger.debug(content) } /** * 日志输出 level为info * @param { string } content */ exports.info = ( content ) => { let logger = log4j.getLogger('info') logger.level = levels.info logger.info(content) } /** * 日志输出 level为error * @param { string } content */ exports.error = ( content ) => { let logger = log4j.getLogger('error') logger.level = levels.error logger.error(content) } 复制代码
定义util.js
文件,做通用工具函数库
/** * 通用函数封装 * @auther 何小玍。 * @time 2021/07/28 22:07 */ const log4j = require('./log4j') const CODE = { SUCCESS: 200, // 成功 PARAM_ERROR: 10001, // 参数错误 USER_ACCOUNT_ERROR: 20001, // 账号或密码错误 USER_LOGIN_ERROR: 30001, // 用户未登录 BUSINESS_ERROR: 40001, // 业务请求失败 AUTH_ERROR: 50001, // 认证失败或TOKEN过期 } module.exports = { /** * 分页结构封装 * @param { number } pageNum 每页数量 * @param { number } pageSize 当前页码 */ pager({ pageNum = 1, pageSize = 1 }) { pageNum *= 1 pageSize *= 1 const skipIndex = (pageNum - 1) * pageSize // 当前所翻页数 return { page: { pageNum, pageSize }, skipIndex } }, // 成功回调 success(data = '', msg = '', code = CODE.SUCCESS) { log4j.debug(data) return { code, data, msg } }, // 失败回调 fail(data = '', msg = '', code = CODE>BUSINESS_ERROR) { log4j.debug(msg) return { code, data, msg } }, // 把状态码暴露全局 CODE } 复制代码
至此,log4j的封装已完成,就可以直接调用了
在app.js里面加入两句话,实时打印get请求和post请求
// logger 中间件 app.use(async (ctx, next) => { log4j.info(`get: ${ JSON.stringify(ctx.request.query) }`) // 监听get请求 log4j.info(`params: ${ JSON.stringify(ctx.request.body) }`) // 监听post请求 const start = new Date() await next() const ms = new Date() - start console.log(`${ctx.method} ${ctx.url} - ${ms}ms`) }) 复制代码
然后运行npm dev
, 在浏览器打开localhost:3000,就能看到项目自动生成一个log文件夹
,里面有着日志信息
网络异常,图片无法展示
|