Log4j 2 杀不死 Java!( 三 )

相关的 Java 系统属性有两个: -Dcom.sun.jndi.rmiobject.trustURLCodebase=false -Dcom.sun.jndi.cosnaming.object.trustURLCodebase=false 将这两个属性设置为 false 可以阻止远程攻击...


相关的 Java 系统属性有两个:

  • -Dcom.sun.jndi.rmiobject.trustURLCodebase=false
  • -Dcom.sun.jndi.cosnaming.object.trustURLCodebase=false
将这两个属性设置为 false 可以阻止远程攻击 。
还有一个动态的补丁 , 它可以连接到正在运行的 JVM 并给其打补丁 。 这个补丁必须在 JVM 每次启动时应用 。 虽然这两种方法有一定的作用 , 但相较而言 , 更新库更简单 。
Java 如何处理日志
Java 开发人员一般可以从多个日志系统和记录方式中进行选择 。 多年来 , 随着社区的发展 , 许多日志框架也可以协同工作了:
  • System Logger(2017 年推出 , 推荐)是 JDK 9 中引入的日志系统 。 它改进了 JDK Logger 的 API , 并提供了类似于 SLF4j 的记录方式 , 可以将 JDK 的日志重定向到应用程序团队选择的日志系统 。
  • JDK Logger(2004 年推出)是 Java 1.4 中引入的日志系统 。 由于 JDK 中大量使用了该日志系统 , 因此变得很流行 , 但是 API 有点蹩脚 。 虽然这个日志系统也不错 , 但不如其他框架 。
  • Log4j 和 Log4j2 是社区推荐的日志系统 , 二者改进了 API , 因此开发团队可以更轻松地控制记录的内容以及各个级别的日志记录数据的方式 。
  • Logback 和 SLF4j 也是流行的日志系统 。 SLF4J 是一个简单的日志记录方式 , 可帮助团队处理许多日志记录 , 库的维护人员可以将日志输出到 SLF4J , 然后由应用程序开发人员配置他们将使用哪些底层的日志系统来统一输出 。 此外 SLF4J 还建立了良好的 API , 最大限度地减少了依赖关系 。
  • JBoss Logger 是 JBoss 生态系统中的另一个流行的日志系统 。 该系统性能良好 , 而且运行速度很快 。 如今它还支持其他流行框架 , 如 Quarkus 。
  • Apache Commons-Logging(2002 年推出)诞生于 JDK 日志系统之前 , 并启发了许多 API 。 它的最后一个版本是于 2014 年推出的 , 之后人们陆续开始采用其他以支持良好的日志记录为目标的 API 。
2022年推荐的日志系统 依赖项越少越好 , 项目越新越好 , 因此我们可以考虑 System Logger 。
有些项目拥有大量依赖项 , 但优势在于它们使用的日志记录工具与大多数的依赖项相同 , 只不过选用了其他日志记录方式 。
如果你没有任何日志系统 , 则可以考虑 System Logger , 它是一款拥有良好 API 的 JDK 日志记录工具 。
日志系统到底是做什么的?
日志框架能够让应用程序的主人看到通用格式的日志消息、时间戳、线程名称以及其他数据 。
此外 , 团队可以将不同的输出重定向到不同的位置 , 甚至无需显示出来 , 例如 , 你可以将访问日志发送到一个文件 , 将系统报告发送到其他地方 , 然后选择显示所有级别的日志信息 , 或者动态查看某个库的调试信息 。
? 小鹏汽车回应非法收集人脸数据被罚10万;OPPO发布首颗自研芯片马里亚纳X;AMD 3DNow指令集被Linux淘汰|极客头条
? 乔布斯时代的“老人” , 一个个都离开苹果了......
? 从 Angular 移植到 React , 代码量减少了 20%

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。