Koa日誌中介軟體封裝開發詳解

2022-03-29 17:44:49 字數 2672 閱讀 8703

對於乙個伺服器應用來說,日誌的記錄是必不可少的,我們需要使用其記錄專案程式每天都做了什麼,什麼時候發生過錯誤,發生過什麼錯誤等等,便於日後回顧、實時掌握伺服器的執行狀態,還原問題場景。

日誌的作用

日誌中介軟體開發工具log4js

在node當中沒有自帶的日誌模組,所以需要使用第三方模組

使用模組:log4js

安裝:npm i log4js -s

logsjs官方文件

日誌分類:訪問日誌: 記錄客戶端對專案的訪問,主要是 http 請求。用於幫助改進和提公升**的效能和使用者體驗;

應用日誌: 專案標記和記錄位置列印的日誌,包括出現異常情況,方便查詢專案的執行狀態和定位bug(包含了debug、info、warn 和 error等級別)。

日誌等級

如配置level: 'error',則只能輸出error,fatar,mark級別的日誌資訊

日誌中介軟體開發

設定需要日誌需要記錄的資訊段(log_info.js)

export default (ctx, message, commoninfo) => =ctx.request;

const client =

return

json.stringify(object.assign(commoninfo, client));

}

設定通用獲取配置後的log4js物件(logger.js)

////自定義配置項1

cheese: /task`, //輸出日誌路徑

pattern: '-yyyy-mm-dd.log', //

日誌檔案字尾名(task-2019-03-08.log)

alwaysincludepattern: true

} }

//如果為開發環境配置在控制台上列印資訊

if (env === "dev" || env === "local" || env === "development")

} //log4js配置

let config =

}} log4js.configure(config)

//使用配置項

return log4js.getlogger(name)//

}log日誌中介軟體開發(logger.js)

export default (options) =>; //

後期賦值給ctx.log

//取出通用配置(專案名,伺服器請求ip)

const commoninfo =;

return async (ctx, next) =>

})ctx.log =contextlogger;

//執行中介軟體

await next()

//結束時間

const responsetime = date.now() -start;

//將執行時間記錄logger.info

logger.info(loginfo(ctx,

s`}, commoninfo))}}

import log from '../log/logger';

...//

koa 提供的環境變數

projectname: 'back-api',

dir: 'logs',

serverip: ip.address()

}))

其他特殊位置需要日誌記錄使用

ctx.log.error(err.stack); //

記錄錯誤日誌

ctx.log.info(err.stack); //

記錄資訊日誌

ctx.log.warn(err.stack); //

記錄警告日誌

...

執行截圖

log4js使用基本配置和流程解析

設定配置項,

//

配置項形式

},categories:}//

配置config: ,

error: ,

stdout: , //在控制台上列印資訊

},// 通過categories來取出給log4js按需配置,返回配置後的log4js物件,每個屬性配置相當於乙個不同的log4js配置物件入口;default為預設入口(getlogger()找不到入口時預設使用default)

categories:

}

使用let logger_out = log4js.getlogger('error');後期考慮是否需要對日誌進行資料庫儲存,進行日誌持久化;

考慮到不可能對日誌記錄後一直儲存,對於乙個月或者一周以前的日誌可能沒有必要在進行儲存了,需要開發設定定時自動刪除過期日誌檔案(獲資料庫日誌記錄)

**:

koa 中介軟體

什麼是中介軟體 中介軟體是匹配路由之前或匹配路由完成做的一系列操作 中介軟體是乙個函式,它可以訪問請求物件和響應物件,和web應用中處理請求 響應迴圈流程 變數next,呼叫它,將控制權交給下乙個中介軟體函式 中介軟體的功能 koa中的幾種中介軟體 應用級中介軟體 路由級中介軟體 錯誤處理中介軟體 ...

koa 中介軟體

什麼是 koa 的中介軟體 通俗的講 中介軟體就是匹配路由之前或者匹配路由完成做的一系列的操作,我們就可以 把它叫做中介軟體。在express中介軟體 middleware 是乙個函式,它可以訪問請求物件 requestobject req 響應物件 responseobject res 和 web...

koa 中介軟體

中介軟體就是匹配路由之前或者匹配路由完成做的一系列的操作,我們就可以把它叫做中介軟體。在express 中介軟體 middleware 是乙個函式,它可以訪問請求物件 request object req 響應物件 response object res 和web 應用中處理請求 響應迴圈流程中的中...