log4j在System.out.println上

时间:2015-09-07 17:23:50

标签: java log4j

使用log4j优于System.out.Println的性能明智优势是什么? 仅供参考:我知道log4j有多个appender,调试日志记录和System.Out.println没有的其他功能,并且在类级别也适用,并且在大型应用程序中使用。 但是,如果我有一个小应用程序,请说文件log4j将提供比System.Out.println更好的性能。内部log4j如何运作?

2 个答案:

答案 0 :(得分:1)

Log4j无权获得更高的性能。它的创建是为了具有更多能力来减少日志量并指定日志输出。想象一下Tomcat服务器,它记录了大量的hibernate数据库访问。例如。使用日志级别,您可以通过此信息日志停止服务器紧张。但这不是“本机”性能优势,因为您可以在sysos之前使用标志检查来模拟这一点。

答案 1 :(得分:0)

我能想到的唯一一种情况是使用log4j而不是System.out.println来感知性能优势,例如,如果这样做:

logger.debug("Logging something");

而不是这样做:

System.out.println("Logging something");

然后以不需要记录调试消息的方式配置日志记录级别。 在这种情况下,第一行不会实际记录,但第二行仍将写入System.out。

在所有其他情况下(我的意思是,在实际完成日志记录的所有情况下)我都不认为使用log4j 性能明智会更快。

通常它用于你陈述的所有原因,并且因为性能没有那么不同(与在文件上写东西的实际时间相比,框架开销很小)。