-
Notifications
You must be signed in to change notification settings - Fork 503
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
关于使用static final修饰Logger变量的相关框架或组件日志无法在各业务模块正常隔离打印的问题 #828
Comments
这种复写Log4J2LoggingSystem.getLoggerContext() 方法应该只能解决初始化配置问题,后续动态获取的log日志可以正常打印,但是针对static final 修饰Logger 因为只在第一次类加载时获取log对象(使用的是基座配置),所以导致业务模块调用时的日志都打印到了基座目录,这种这么处理呢? |
通过我们的适配逻辑,第一次加载的时候已经拿到的是模块的配置了,也就是能打印到模块目录里的 |
但是这些公共组件的依赖是下沉到基座的,所有业务模块都会使用,比如第一加载使用的是A模块的配置,后续B模块使用时日志就会也打印到A模块的目录中(因为static final修饰的logger只会加载一次,用的是A模块的配置) |
是的,这部分的日志是作为基座的日志打印的,没有区分模块。不过如果是流量相关的日志,可以通过流量里带上模块信息,在打印trace的时候把模块信息打印出来。 |
目前想到一种方案: 代码如下:
|
赞,挺不错的想法。可以通过把复写代码放在下面这个包里,然后实际验证下吗?然后提交个 PR 吗? 我们现在 log4j2 也是复写了部分类来支持多应用的。 |
方便加下开发者协作群细聊吗?或者我个人微信 zzl_ing |
好的,已提pr:sofastack/sofa-serverless#478 |
This issue has been automatically marked as stale because it has not had recent activity in the last 30 days. It will be closed in the next 7 days unless it is tagged (pinned, good first issue or help wanted) or other activity occurs. Thank you for your contributions. |
已完成 |
共用的框架或组件依赖会下沉到基座(模块瘦身),很多框架或组件都是使用static final修饰的Logger变量
这样就会导致这些框架或组件日志无法在各业务模块正常隔离打印,请问有解决方案吗?
The text was updated successfully, but these errors were encountered: