欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用koa-log4管理nodeJs日志筆記的使用方法

 更新時(shí)間:2018年11月30日 09:18:23   作者:emcty  
這篇文章主要介紹了使用koa-log4管理nodeJs日志筆記的使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

前言

對(duì)于后端程序應(yīng)用來(lái)說(shuō),日志是必不可少的,在nodeJs當(dāng)中并沒(méi)有自帶的日志模塊。最近正好使用koa框架來(lái)做后端服務(wù),需要對(duì)日志進(jìn)行分割處理,特記錄下分享給大家。

一.后端代碼目錄結(jié)構(gòu)

├── back-end
│ ├── logs 所有產(chǎn)生的日志文件存放在此目錄下
│ ├── db.js 使用Sequelize連接數(shù)據(jù)庫(kù)
│ ├── logger.js 日志的配置
│ ├── server.js 后端提供的所有接口

二.引用日志模塊

log4js-node是一款比較好的在node環(huán)境下對(duì)于日志處理的模塊,由于我的整個(gè)項(xiàng)目是基于koa框架,所以我選擇了koa-log4模塊。

koa-log4在log4js-node的基礎(chǔ)上做了一次包裝,是koa的一個(gè)處理日志的中間件,此模塊可以幫助你按照你配置的規(guī)則分叉日志消息。

三.日志配置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', //生成文件的規(guī)則
   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')); //記錄所有訪問(wèn)級(jí)別的日志
exports.logger = log4js.getLogger('application'); //記錄所有應(yīng)用級(jí)別的日志

四.日志的使用方法

1.訪問(wèn)日志

對(duì)于日志的使用,訪問(wèn)級(jí)別的,記錄用戶的所有請(qǐng)求,作為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.應(yīng)用日志

應(yīng)用級(jí)別的日志,可記錄全局狀態(tài)下的error,也可記錄接口請(qǐng)求當(dāng)中的錯(cuò)誤處理。

捕獲全局狀態(tài)下的error

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

接口請(qǐng)求錯(cuò)誤

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

五.自動(dòng)生成日志

開啟node應(yīng)用對(duì)于每一次的請(qǐng)求,都將按日期來(lái)生成日志文件,以下是我這幾天自動(dòng)生成的日志文件

六.日志內(nèi)容分析

日志文件當(dāng)中都有詳細(xì)的記錄

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • nodejs中使用HTTP分塊響應(yīng)和定時(shí)器示例代碼

    nodejs中使用HTTP分塊響應(yīng)和定時(shí)器示例代碼

    本文通過(guò)示例將要?jiǎng)?chuàng)建一個(gè)輸出純文本的HTTP服務(wù)器,輸出的純文本每隔一秒會(huì)新增100個(gè)用換行符分隔的時(shí)間戳。實(shí)例代碼非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-03-03
  • jwt在node中的應(yīng)用實(shí)踐(安裝配置封裝)

    jwt在node中的應(yīng)用實(shí)踐(安裝配置封裝)

    這篇文章主要為大家介紹了jwt在node中的應(yīng)用實(shí)踐包括安裝配置封裝,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 在node中如何調(diào)用python腳本

    在node中如何調(diào)用python腳本

    這篇文章主要介紹了在node中如何調(diào)用python腳本,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • nodejs連接mongodb數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查

    nodejs連接mongodb數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查

    本篇文章主要結(jié)合了nodejs操作mongodb數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查,包括對(duì)數(shù)據(jù)庫(kù)的增加,刪除,查找和更新,有興趣的可以了解一下。
    2016-12-12
  • 配置nodejs環(huán)境的方法

    配置nodejs環(huán)境的方法

    本篇文章主要介紹了配置nodejs環(huán)境變量的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • 5分鐘教你用nodeJS手寫一個(gè)mock數(shù)據(jù)服務(wù)器的方法

    5分鐘教你用nodeJS手寫一個(gè)mock數(shù)據(jù)服務(wù)器的方法

    這篇文章主要介紹了5分鐘教你用nodeJS手寫一個(gè)mock數(shù)據(jù)服務(wù)器的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 理解Koa2中的async&await的用法

    理解Koa2中的async&await的用法

    這篇文章主要介紹了理解Koa2中的async&await的用法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析

    Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析

    這篇文章主要為大家介紹了Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • 詳解Node.js:events事件模塊

    詳解Node.js:events事件模塊

    由于nodejs是單線程運(yùn)行的,所以nodejs需要借助事件輪詢,本篇文章主要介紹了Node.js:events事件模塊,有興趣的可以了解一下。
    2016-11-11
  • 詳解Nodejs的timers模塊

    詳解Nodejs的timers模塊

    本篇文章主要介紹了Nodejs的timers模塊,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12

最新評(píng)論