我正在尝试使用express-winston登录我的 nodejs-express-server 应用程序。此应用程序是从 openapi-generator-cli 创建的 openapi API 服务器存根。在记录请求时
指的是关于排除参数的这篇文章。我的目的是检测请求中的授权标头(“api_token”)并屏蔽其值。当我按原样记录请求时,在没有任何过滤的情况下,我在 JSON 格式化后看到大约 1000 多行的大量日志条目。我可以使用一些指针
- 屏蔽选定的标题(使用 express-winston 或任何其他库)
- 减少日志上的请求大小
这是我正在尝试的过滤器。代码如下。
function maskTokenFilter(req, propName) {
if(propName !== "headers" || propName !== "rawHeaders") {
return req[propName];
}
if(propName == "headers" ){
const { api_token, ...rest } = req.headers;
if(api_token) {
return Object.assign({api_token: '*** masked ***'},rest);
}
}
if(propName == "rawHeaders" ){
const { api_token, ...rest } = req.rawHeaders;
if(api_token) {
return Object.assign({api_token: '*** masked ***'},rest);
}
}
}
express-winston 日志上的完整请求条目在此处共享。(注意:为了便于阅读,我将其格式化为 JSON)