资讯专栏INFORMATION COLUMN

koa-log4 管理nodeJs访问日志、系统日志

ztyzz / 3566人阅读

使用nodeJs koa2框架开发后端应用,使用koa-log4中间件管理nodeJs访问日志、系统日志。
一、安装koa-log4

因为项目使用了koa2,所以安装的高版本的log4,

$ npm i --save koa-log4@2

如果使用koa1,请使用指令

$ npm i --save koa-log4@1

koa-log4 Npm主页

二、新建log4.js文件来配置log4
const path = require("path");//引入原生path模块
const log4js = require("koa-log4");//引入koa-log4

log4js.configure({
  appenders: {
    //访问日志
    access: {
      type: "dateFile",
      pattern: "-yyyy-MM-dd.log", //通过日期来生成文件
      alwaysIncludePattern: true, //文件名始终以日期区分
      encoding:"utf-8",
      filename: path.join("logs/", "access.log") //生成文件路径和文件名
    },
    //系统日志
    application: {
      type: "dateFile",
      pattern: "-yyyy-MM-dd.log", //通过日期来生成文件
      alwaysIncludePattern: true, //文件名始终以日期区分
      encoding:"utf-8",
      filename: path.join("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. systemLogger = log4js.getLogger("application");  //记录所有应用级别的日志
三、如何使用日志

访问日志--记录用户所有访问请求,以中间件的形式在koa入口使用即可

    const Koa = require("koa");
    const app = new Koa();
    const {  accessLogger,systemLogger, } = require("./logger");
    const router = new KoaRouter();
    app.use(accessLogger()); //中间件

系统日志--记录系统状态的error

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

四、效果

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100614.html

相关文章

  • 使用pm2部署node生产环境

    摘要:一是什么是可以用于生产环境的的进程管理工具,并且它内置一个负载均衡。嗯嗯,最好的用处就是监控我们的生产环境下的程序运行状态,让它给我们日以继日的处于工作状态。部署自动部署,避免逐个在所有服务器中进行。 一、PM2是什么 是可以用于生产环境的Nodejs的进程管理工具,并且它内置一个负载均衡。它不仅可以保证服务不会中断一直在线,并且提供0秒reload功能,还有其他一系列进程管理、监控...

    刘厚水 评论0 收藏0
  • serverless在微店node领域的探索应用

    摘要:参与者流量来自于内部系统和外部流量,其中大部分来自于外部流量。水平扩容服务的水平扩容重要性不言而喻。 背景 目前微店中台团队为了满足公司大部分产品、运营以及部分后端开发人员的尝鲜和试错的需求,提供了一套基于图形化搭建的服务端接口交付方案,利用该方案及提供的系统可生成一副包含运行时环境定义可立即运行的工程代码,最后,通过 某种serverless平台 实现生成后代码的部署、CI、运行、反...

    mikyou 评论0 收藏0
  • Node.js + ELK 日志规范

    摘要:日志规范一般前端开发同学,对日志其实不太敏感,毕竟前端大多数情况下,不太关心日志。本文主要梳理了目前我们团队在开发中日志方面存在的问题,以及通过统一日志规范,希望达到什么样的效果。日志格式字段日志格式统一采用,便于解析处理。nodejs 日志规范 一般前端开发同学,对日志其实不太敏感,毕竟前端大多数情况下,不太关心日志。即使有,也可能调用一些第三方的统计,比如百度统计或者别的等。在 Node...

    tuomao 评论0 收藏0

发表评论

0条评论

ztyzz

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<