使用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 模块开发及发布详解分享
Mar 07 NodeJs
浅析nodejs实现Websocket的数据接收与发送
Nov 19 NodeJs
NodeJS连接MongoDB数据库时报错的快速解决方法
May 13 NodeJs
nodejs和php实现图片访问实时处理
Jan 05 NodeJs
进阶之初探nodeJS
Jan 24 NodeJs
Nodejs 发送Post请求功能(发短信验证码例子)
Feb 09 NodeJs
docker中编译nodejs并使用nginx启动
Jun 23 NodeJs
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
Sep 18 NodeJs
Nodejs模块的调用操作实例分析
Dec 25 NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 NodeJs
PHPStorm中如何对nodejs项目进行单元测试详解
Feb 28 NodeJs
nodejs语言实现验证码生成功能的示例代码
Oct 13 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
PHP输入流php://input实例讲解
2015/12/22 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
jquery获取焦点和失去焦点事件代码
2013/04/21 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
Angular短信模板校验代码
2020/09/23 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
介绍Python的@property装饰器的用法
2015/04/28 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
手把手教你python实现SVM算法
2017/12/27 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
Python enumerate函数遍历数据对象组合过程解析
2019/12/11 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
python实现逻辑回归的示例
2020/10/09 Python
python软件测试Jmeter性能测试JDBC Request(结合数据库)的使用详解
2021/01/26 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
德国团购网站:Groupon德国
2018/03/13 全球购物
销售人员个人求职信
2013/09/26 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
工厂搬迁方案
2014/05/11 职场文书
英语教研活动总结
2014/07/02 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
Java框架入门之简单介绍SpringBoot框架
2021/06/18 Java/Android