Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
表现及;Java日志、Log4J、Logback的内存占用_Java_Log4j_Slf4j_Logback_Java.util.logging - Fatal编程技术网

表现及;Java日志、Log4J、Logback的内存占用

表现及;Java日志、Log4J、Logback的内存占用,java,log4j,slf4j,logback,java.util.logging,Java,Log4j,Slf4j,Logback,Java.util.logging,我知道,目前最合适的组合是SLF4J+Logback,但是考虑到我的要求是非常基本的日志记录,我的简单问题是 1> 在性能和内存方面,Java日志和Log4J之间哪一个更好?为什么 2> 性能和内存方面,Java日志记录和(SLF4J+Logback)之间哪一个更好,为什么 考虑到我的要求是非常基本的日志记录 那么你只需要简单地担心。Java日志记录可能是最简单的解决方案,其性能也可能不错 大多数记录器的内存占用不是问题。有时,性能是很重要的,但除非您有一个低延迟(亚毫秒)或高吞吐量(每秒记录数

我知道,目前最合适的组合是SLF4J+Logback,但是考虑到我的要求是非常基本的日志记录,我的简单问题是

1> 在性能和内存方面,Java日志和Log4J之间哪一个更好?为什么

2> 性能和内存方面,Java日志记录和(SLF4J+Logback)之间哪一个更好,为什么

考虑到我的要求是非常基本的日志记录

那么你只需要简单地担心。Java日志记录可能是最简单的解决方案,其性能也可能不错

大多数记录器的内存占用不是问题。有时,性能是很重要的,但除非您有一个低延迟(亚毫秒)或高吞吐量(每秒记录数千个事件)的系统,否则我不会担心它

考虑到我的要求是非常基本的日志记录

那么你只需要简单地担心。Java日志记录可能是最简单的解决方案,其性能也可能不错


大多数记录器的内存占用不是问题。有时,性能是很重要的,但除非您有一个低延迟(亚毫秒)或高吞吐量(每秒记录数千个事件)的系统,否则我不会担心它。

我可以给您以下建议:除非您只是为了好玩而做,您的代码很可能会扩展,您必须将所有日志语句重写为生产质量API。如果是这样的话,我建议您使用SLF4J,这仍然让您可以选择使用JUL、Log4j或logback。

我可以给您以下建议:除非您只是为了好玩而做,否则您的代码很可能会扩展,您必须将所有日志语句重写为生产质量API。如果是这样的话,我建议您使用SLF4J,这仍然让您可以选择使用JUL、Log4j或logback。

通常“非常基本的日志记录”不是

日志条目将去哪里?如果在文件中,如何保存日志文件而不是在重新启动时覆盖?过时保存的日志文件会发生什么情况

我建议您在自己的代码中为API使用slf4j。而且,除非您有其他模块或政治强制执行特定的解决方案,否则我建议使用logback,因为它是目前维护最活跃的,如果需要,您可以稍后使用log4j或jul替换它

此外,slf4j为您提供了{},这是迄今为止我所看到的对客户端登录的最简单的改进。

“非常基本的登录”通常不是

日志条目将去哪里?如果在文件中,如何保存日志文件而不是在重新启动时覆盖?过时保存的日志文件会发生什么情况

我建议您在自己的代码中为API使用slf4j。而且,除非您有其他模块或政治强制执行特定的解决方案,否则我建议使用logback,因为它是目前维护最活跃的,如果需要,您可以稍后使用log4j或jul替换它


此外,slf4j为您提供了{},这是迄今为止我所看到的登录客户机的最大改进。

考虑到您的要求,这应该是无关紧要的。Logback经过高度优化,可最大限度地减少受抑制日志语句(低于配置阈值的语句)的资源浪费。JUL是基本的,没有特别的优化。最好的方法是编写一个测试。如果您无法让测试正常工作,那么SO可能是一个很好的地方,可以询问此类测试中出现的特定问题的答案。最佳性能需要内存缓存。你需要非常明确地说明你是如何衡量的。考虑到你的要求应该是无关紧要的。Logback经过高度优化,可最大限度地减少受抑制日志语句(低于配置阈值的语句)的资源浪费。JUL是基本的,没有特别的优化。最好的方法是编写一个测试。如果您无法让测试正常工作,那么SO可能是一个很好的地方,可以询问此类测试中出现的特定问题的答案。最佳性能需要内存缓存。您需要非常明确地说明如何度量。记录性能的问题是,您通常希望确保在程序崩溃时记录所有内容。如果缓冲区中还有任何东西没有持久化,您就看不到它。在这种情况下,使用缓冲或异步日志记录的性能更高、更复杂的解决方案在您突然崩溃时实际上是一个缺点。我更喜欢使用内存映射文件,这些文件是同步的,延迟非常低(并且不会在应用程序崩溃时丢失)。但我不认为他们是最简单的在最近才能够在生产中考虑java 6这对我来说是一个未知的领域。你会建议你在日志中查找java或U.L.Login?如果java 6在今年的11月将是EOL(它是5.5年),也许你可以考虑移动到java 7。如果没有更多的细节,我会坚持使用最简单的IMHO,它是内置的。Logback有一些优势,但您可能不会真正从中受益。IBM的Java产品在非x86平台上的使用寿命完全不同,因此我们的默认目标是Java 5。对于研究,在这种情况下,您是否有指向内存映射文件的良好链接?记录性能的问题在于,您通常希望确保在程序崩溃时记录所有内容。如果缓冲区中还有任何东西没有持久化,您就看不到它。在这种情况下,使用缓冲或异步日志记录的性能更高、更复杂的解决方案在您突然崩溃时实际上是一个缺点。我更喜欢使用内存映射文件,这些文件是同步的,延迟非常低(并且不会在应用程序崩溃时丢失)。但我不认为他们是最简单的在最近才能够在生产中考虑java 6这对我来说是一个未知的领域。对于logback或java.util.logging,您建议研究什么?给定java