程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Log4j2 我可以在 log4j2 的模式布局中包含用户名吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Log4j2 我可以在 log4j2 的模式布局中包含用户名吗??

开发过程中遇到Log4j2 我可以在 log4j2 的模式布局中包含用户名吗?的问题如何解决?下面主要结合日常开发的经验,给出你关于Log4j2 我可以在 log4j2 的模式布局中包含用户名吗?的解决方法建议,希望对你解决Log4j2 我可以在 log4j2 的模式布局中包含用户名吗?有所启发或帮助;

我在我的应用中使用 Log4j2 作为记录器。我想自定义记录器消息并将登录用户的名称作为模式布局的一部分 例如: 2021-06-01 03:29:06.636 [CURRENT_USER] WARN 1 --- [nio-8002-exec-7] com.zaxxer.hikari.pool.PoolBase:HikariPool-1 - 无法验证连接 org.POSTGResql.jdbc .PgConnection@6813ce6c(此连接已关闭。)。可能虑使用较短的 maxlifetime 值。

解决方法

我假设登录用户指的是活动事务的数据库用户。如果您可以将其放入 MDC 变量中(有多种方法可以访问 JDBC 用户名,请选择最适合您需要的一种),那么您可以通过 PatternLayout 的 {{1 }} 指令,例如 %X

,

如果您指的是数据库用户名,请使用 Volkan Yazıcı's answer。如果您想要操作系统用户名,您可以从 Java 系统属性“user.name”中获取它,并且您可以在配置中使用模式 ${sys:system.property.namE}(您需要将 $字符)。

<pattern>... [$${sys:user.namE}] ...</pattern>
,

已解决。使用不记名令牌获取用户凭据,然后通过 ThReadContext 放置用户名。

           if (bearerToken != null && bearerToken.startsWith("Bearer ")) {
            UserCredential user = JWTUtil.parseToken(bearerToken.subString(7,bearerToken.length()));
            ThReadContext.put("userName",user.getUsername());

        }

大佬总结

以上是大佬教程为你收集整理的Log4j2 我可以在 log4j2 的模式布局中包含用户名吗?全部内容,希望文章能够帮你解决Log4j2 我可以在 log4j2 的模式布局中包含用户名吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。