對於乙個伺服器應用來說,日誌的記錄是必不可少的,我們需要使用其記錄專案程式每天都做了什麼,什麼時候發生過錯誤,發生過什麼錯誤等等,便於日後回顧、實時掌握伺服器的執行狀態,還原問題場景。
日誌的作用
日誌中介軟體開發工具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;設定通用獲取配置後的log4js物件(logger.js)const client =
return
json.stringify(object.assign(commoninfo, client));
}
////自定義配置項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 應用中處理請求 響應迴圈流程中的中...