使用koa-log4管理nodeJs日志笔记的使用方法


Posted in NodeJs onNovember 30, 2018

前言

对于后端程序应用来说,日志是必不可少的,在nodeJs当中并没有自带的日志模块。最近正好使用koa框架来做后端服务,需要对日志进行分割处理,特记录下分享给大家。

一.后端代码目录结构

├── back-end
│ ├── logs 所有产生的日志文件存放在此目录下
│ ├── db.js 使用Sequelize连接数据库
│ ├── logger.js 日志的配置
│ ├── server.js 后端提供的所有接口

二.引用日志模块

log4js-node是一款比较好的在node环境下对于日志处理的模块,由于我的整个项目是基于koa框架,所以我选择了koa-log4模块。

koa-log4在log4js-node的基础上做了一次包装,是koa的一个处理日志的中间件,此模块可以帮助你按照你配置的规则分叉日志消息。

三.日志配置logger.js

koa-log4的配置与log4js-node是一样的。

const path = require('path');
const log4js = require('koa-log4');

log4js.configure({
 appenders: {
  access: {
   type: 'dateFile',
   pattern: '-yyyy-MM-dd.log', //生成文件的规则
   filename: path.join('back-end/logs/', 'access.log') //生成文件名
  },
  application: {
   type: 'dateFile',
   pattern: '-yyyy-MM-dd.log',
   filename: path.join('back-end/logs/', 'application.log')
  },
  out: {
   type: 'console'
  }
 },
 categories: {
  default: { appenders: [ 'out' ], level: 'info' },
  access: { appenders: [ 'access' ], level: 'info' },
  application: { appenders: [ 'application' ], level: 'WARN'}
 }
});

exports.accessLogger = () => log4js.koaLogger(log4js.getLogger('access')); //记录所有访问级别的日志
exports.logger = log4js.getLogger('application'); //记录所有应用级别的日志

四.日志的使用方法

1.访问日志

对于日志的使用,访问级别的,记录用户的所有请求,作为koa的中间件,直接使用便可,如下:

const Koa = require('koa');
const KoaRouter = require('koa-router');
const app = new Koa();
const router = new KoaRouter();
const { logger, accessLogger } = require('./logger');
const router = new KoaRouter();

app.use(accessLogger());

2.应用日志

应用级别的日志,可记录全局状态下的error,也可记录接口请求当中的错误处理。

捕获全局状态下的error

app.on('error', err => {
 logger.error(err);
});

接口请求错误

router.post('/test',async (ctx, next)=>{
 //处理代码
 }catch(e){
  logger.error(e);
  ctx.body = {status:-1, message:e.message};
 }
});

五.自动生成日志

开启node应用对于每一次的请求,都将按日期来生成日志文件,以下是我这几天自动生成的日志文件

使用koa-log4管理nodeJs日志笔记的使用方法

六.日志内容分析

日志文件当中都有详细的记录

使用koa-log4管理nodeJs日志笔记的使用方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
跟我学Nodejs(一)--- Node.js简介及安装开发环境
May 20 NodeJs
详谈nodejs异步编程
Dec 04 NodeJs
NodeJS制作爬虫全过程(续)
Dec 22 NodeJs
NodeJs基本语法和类型
Feb 13 NodeJs
使用nodejs中httpProxy代理时候出现404异常的解决方法
Aug 15 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
NodeJS链接MySql数据库的操作方法
Jun 27 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
详解Nodejs mongoose
Jun 10 NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 #NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 #NodeJs
详解从NodeJS搭建中间层再谈前后端分离
Nov 13 #NodeJs
手把手教你如何使用nodejs编写cli命令行
Nov 05 #NodeJs
基于nodejs的雪碧图制作工具的示例代码
Nov 05 #NodeJs
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
Nov 01 #NodeJs
nodejs中函数的调用实例详解
Oct 31 #NodeJs
You might like
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
PHP实现分布式memcache设置web集群session同步的方法
2018/04/10 PHP
php实现微信支付之企业付款
2018/05/30 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
js页面跳转常用的几种方式
2010/11/25 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
Jquery焦点与失去焦点示例应用
2014/06/10 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
javascript运动详解
2015/07/06 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
vue 优化CDN加速的方法示例
2018/09/19 Javascript
JS拖拽排序插件Sortable.js用法实例分析
2019/02/20 Javascript
通过实践编写优雅的JavaScript代码
2019/05/30 Javascript
Vue 刷新当前路由的实现代码
2019/09/26 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python程序设计入门(2)变量类型简介
2014/06/16 Python
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python实现视频读取和转化图片
2019/12/10 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
html5菜单折纸效果
2014/04/22 HTML / CSS
高级运动鞋:GREATS
2019/07/19 全球购物
Android面试题及答案
2015/09/04 面试题
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
毕业求职自荐信格式是什么
2013/11/19 职场文书
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
西北政法大学自主招生自荐信
2014/01/29 职场文书
美术教学感言
2014/02/22 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis