gpt4 book ai didi

java - Log4j 性能明智 %F 与 getClass().getSimpleName()

转载 作者:太空宇宙 更新时间:2023-11-04 07:55:23 33 4
gpt4 key购买 nike

为了提高性能,最好使用什么来在日志中包含类名?在模式布局中,它在 %F 的文档中给出了警告:

用于输出发出日志请求的文件名。
警告生成调用者位置信息的速度非常慢,除非执行速度不成问题,否则应该避免。

最佳答案

为了获取 className,log4j 会进行类似的调用。

String className = new Throwable().getStackTrace()[3].getClassName();

正如您所看到的,这为一个简单的结果做了很多工作。使用 getClass().getSimpleName() 相对效率更高,但如果可以缓存它会更好。

HotSpot 内部有这个方法,我相信它没有被使用,因为它仅供内部使用。恕我直言,如果它能检测到它是否可用并在可用时使用它,那就更好了。

Class class = sun.reflect.Reflection.getCallerClass(int stackDepth);

关于java - Log4j 性能明智 %F 与 getClass().getSimpleName(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13703315/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com