使用koa-log4管理nodeJs日志筆記的使用方法
前言
對(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í)有所幫助,也希望大家多多支持腳本之家。
- nodejs 日志模塊winston的使用方法
- Nodejs Express 通過(guò)log4js寫日志到Logstash(ELK)
- NodeJS讀取分析Nginx錯(cuò)誤日志的方法
- Node.js中使用Log.io在瀏覽器中實(shí)時(shí)監(jiān)控日志(等同tail -f命令)
- Node.js 日志處理模塊log4js
- Node.js利用console輸出日志文件的方法示例
- Node.js利用debug模塊打印出調(diào)試日志的方法
- Node.js和MongoDB實(shí)現(xiàn)簡(jiǎn)單日志分析系統(tǒng)
- Node.js log4js日志管理詳解
- node錯(cuò)誤處理與日志記錄的實(shí)現(xiàn)
- nodejs實(shí)現(xiàn)日志讀取、日志查找及日志刷新的方法分析
相關(guān)文章
nodejs中使用HTTP分塊響應(yīng)和定時(shí)器示例代碼
本文通過(guò)示例將要?jiǎng)?chuàng)建一個(gè)輸出純文本的HTTP服務(wù)器,輸出的純文本每隔一秒會(huì)新增100個(gè)用換行符分隔的時(shí)間戳。實(shí)例代碼非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-03-03jwt在node中的應(yīng)用實(shí)踐(安裝配置封裝)
這篇文章主要為大家介紹了jwt在node中的應(yīng)用實(shí)踐包括安裝配置封裝,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09nodejs連接mongodb數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查
本篇文章主要結(jié)合了nodejs操作mongodb數(shù)據(jù)庫(kù)實(shí)現(xiàn)增刪改查,包括對(duì)數(shù)據(jù)庫(kù)的增加,刪除,查找和更新,有興趣的可以了解一下。2016-12-125分鐘教你用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-09Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析
這篇文章主要為大家介紹了Node.js?連接?MySql?統(tǒng)計(jì)組件屬性的使用情況解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10