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

 更新时间:2018年11月30日 09:18:23   作者:emcty  
这篇文章主要介绍了使用koa-log4管理nodeJs日志笔记的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

前言

对于后端程序应用来说,日志是必不可少的,在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应用对于每一次的请求,都将按日期来生成日志文件,以下是我这几天自动生成的日志文件

六.日志内容分析

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

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

相关文章

  • nodejs中使用HTTP分块响应和定时器示例代码

    nodejs中使用HTTP分块响应和定时器示例代码

    本文通过示例将要创建一个输出纯文本的HTTP服务器,输出的纯文本每隔一秒会新增100个用换行符分隔的时间戳。实例代码非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-03-03
  • jwt在node中的应用实践(安装配置封装)

    jwt在node中的应用实践(安装配置封装)

    这篇文章主要为大家介绍了jwt在node中的应用实践包括安装配置封装,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 在node中如何调用python脚本

    在node中如何调用python脚本

    这篇文章主要介绍了在node中如何调用python脚本,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • nodejs连接mongodb数据库实现增删改查

    nodejs连接mongodb数据库实现增删改查

    本篇文章主要结合了nodejs操作mongodb数据库实现增删改查,包括对数据库的增加,删除,查找和更新,有兴趣的可以了解一下。
    2016-12-12
  • 配置nodejs环境的方法

    配置nodejs环境的方法

    本篇文章主要介绍了配置nodejs环境变量的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 5分钟教你用nodeJS手写一个mock数据服务器的方法

    5分钟教你用nodeJS手写一个mock数据服务器的方法

    这篇文章主要介绍了5分钟教你用nodeJS手写一个mock数据服务器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 理解Koa2中的async&await的用法

    理解Koa2中的async&await的用法

    这篇文章主要介绍了理解Koa2中的async&await的用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Node.js 连接 MySql 统计组件属性的使用情况解析

    Node.js 连接 MySql 统计组件属性的使用情况解析

    这篇文章主要为大家介绍了Node.js 连接 MySql 统计组件属性的使用情况解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • 详解Node.js:events事件模块

    详解Node.js:events事件模块

    由于nodejs是单线程运行的,所以nodejs需要借助事件轮询,本篇文章主要介绍了Node.js:events事件模块,有兴趣的可以了解一下。
    2016-11-11
  • 详解Nodejs的timers模块

    详解Nodejs的timers模块

    本篇文章主要介绍了Nodejs的timers模块,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12

最新评论