我有一个Spring Rest控制器,可以满足以下要求:
logger_name: org.zalando.logbook.Logbook
message: {"origin":"remote","type":"request","correlation":"91ca9efbe5ed9f5d","protocol":"HTTP/1.1","remote":"172.30.10.1","method":"POST","body":{"bundleCode":"pro","clientInfo":{"clientId":"5-B4QTU240","phoneNumber":"+12223334455"},"interfaceInfo":{"appVersion":"string","appName":"string","platform":"invest"},"planId":1}}
我想在日志中将我的12223334455号替换为1******4455号,我已经为其制定了一个方法:
private static final String PHONE_MASK_PATTERN = "(?<=^.{2,%d}).";
public static String getPhoneRegexp(int phoneLength) {
return String.format(PHONE_MASK_PATTERN, phoneLength - 5);
}
但这个请求并不是在句柄中,而是在控制器内部的某个地方。使用该方法屏蔽我的号码的最佳方法是什么?
只需使用替换逻辑定义一个BodyFilter bean,如下所示:
@Bean
public BodyFilter bodyFilter() {
return merge(
defaultValue(),
replacePrimitiveJsonProperty(jsonProp -> jsonProp.equals("phoneNumber"), (jsonPropName, jsonPropValue) -> {
String maskedValue = ... // mask jsonPropValue as you like
return maskedValue;
}));
}
确保包括组织。zalando:logbook spring boot starter在您的项目中具有依赖性,并具有日志。滤器已启用属性设置为true
参考:
https://github.com/zalando/logbook#spring-启动机
我试图通过aop在控制器中记录超文本传输协议请求。但是,在方面代码中,如果我 那么请求数据将无法在主流中检索。 所以,我创建了另一个公共方法,在控制器中传递请求字符串 这种方法是记录“数据”的切入点。 但问题是,这种方法的切入点似乎无法通过Spring识别,这种方法没有日志记录。我需要帮助。 下面是aop的定义
我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?
问题内容: 我正在考虑将Redis用于Web应用程序日志记录目的。我用谷歌搜索,有人将日志转储到Redis队列/列表中,然后将计划的工作人员转储到磁盘中。 http://nosql.mypopescu.com/post/8652869828/another-redis-use-case- centralized-logging 我希望寻求理解,为什么不直接使用Redis持久化到磁盘?如果我分配了一
logging 模块自 2.3 版以来一直是 Python 标准库的一部分。在 PEP 282 中有对它的简洁描述。除了 基础日志教程 之外,这些文档是非常难以阅读的。 日志记录一般有两个目的: 诊断日志 记录与应用程序操作相关的日志。例如,当用户遇到程序报错时, 可通过搜索诊断日志以获得上下文信息。 审计日志 为商业分析而记录的日志。从审计日志中,可提取用户的交易信息, 并结合其他用户资料构成用
主要内容:修改日志管理器配置每个初学者都很熟悉在有问题的代码中使用 System.out.println 方法在控制台打印消息,来帮助观察程序运行的操作过程。如果你使用 System.out.println 方法,一旦发现问题的根源,就要将这些语句从代码中删去。如果接下来又出现了问题,就需要再插入几个调用 System.out.println 方法的语句,如此反复,增加了工作量。 日志用来记录程序的运行轨迹,方便查找关键信
提示 你可以在 GitHub 上查阅当前文章涉及的代码样例。 ASP.NET Core 应用程序 一旦使用了 AddDbContext 或 AddDbContextPool ,EF Core 就会自动集成 ASP.NET Core 的日志记录机制。因此,当使用 ASP.NET Core 的时候,日志记录的配置与 ASP.NET Core 帮助文档 中所描述的是一致的。 其他应用程序 EF Core