我想将API请求/响应记录为json格式.
预期的LogEntry是这样的
{
"timestamp" : "...",
"level" : "DEBUG",
"headers" : [
"header1" : "value1",
"header2" : "value2",
"header3" : "value3"
],
"requestPayload" : "<Request Json>" // prefereablly as sub-document, worst case string is fine.
"labels" : [ //key fields which can be used for searching the logentry
"searchField1" : "....",
"searchField2" : "....",
"searchField3" : "...."
]
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
使用Logback,如何记录嵌套字段(例如上面示例中的标题,标签,requestPaylod),作为json子文档.我尝试过MDC,但它仅限于'String,String'的Map,并将第一级之后的所有字段视为String.
我讨厌为此编写我的自定义记录器,并希望使用成熟的日志记录框架(logback/log4j)的优点来控制日志记录级别,时间戳记日志事件等.
最近开始为Node.js Express应用程序探索swagger。据我了解,swagger是一种框架,需要在nodejs express应用中遵循约定。Swagger使用控制器自动映射路线。
但是我感到,我失去了注入中间件(如通行证)以进行身份验证的功能,可以轻松将其添加到用户定义的路由中。
我知道有一些方法可以让中间人大张旗鼓地注入,但是不知何故,我觉得它没有自然而然地变得不那么自然。
有没有办法可以在代码中使用包含最少的swagger相关组件的swagger-可能仅使用swagger.yaml文件?
我想避免使用req.swagger.param类型的代码,并希望利用标准方法来定义路由和注入中间件。