logback比log4j性能还低?

kqogje 2013-08-09 10:25:38
今天要做一个logback和log4j的性能对比,按理说logback应该效率更高,性能更好才对呀,可是测试出来的结果正好相反,不知道有人对比过吗?
测试代码都一样,如下:
public class Test {
static Logger logger = Logger.getLogger(Test.class.getName());

/**
* @param args void
*/
public static void main(String[] args) {
System.out.println("开始log4j测试");
int i=0;
String s = "测试一下超过100个字符时的写入时间测试一下超过100个字符时的写入时间测试一下超过100个字符时的写入时间测试一下超过100个字符时的写入时间测试一下超过100个字符时的写入时间测试一下超过100个字符时的写入时间";
Date startTime = new Date();
for(i=0;i<10000000;i++){
logger.debug("第"+i+"次循环,"+s);
}
Date endTime = new Date();
System.out.println("结束log4j测试,耗时:"+(endTime.getTime()-startTime.getTime())+"ms");
}

}
而配置方面:
log4j.properties
log4j.rootCategory=DEBUG,logfile

#logfile configure
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=D:/logtest/log4j.log
log4j.appender.logfile.Append = true
log4j.appender.logfile.Threshold = DEBUG
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern= %d %p [%c] - <%m>%n


logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>d:/logtest/logback.log</file>
<append>true</append>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>

<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
</configuration>

测试结果如下:
开始log4j测试
结束log4j测试,耗时:327062ms

开始logback测试
结束logback测试,耗时:445140ms

不管是循环次数是1000W,还是100W,总是log4j的耗时要少些,不知道为什么,各位大侠,有知道原因的吗,是我的测试或者配置有问题吗?
...全文
353 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kqogje 2013-08-09
  • 打赏
  • 举报
回复
是的,要从二者中选一,我是向着logback,但我先拿出实际的数据来
pleasanton 2013-08-09
  • 打赏
  • 举报
回复
一定要用其中之一吗?JAVA自带的不行吗?
kqogje 2013-08-09
  • 打赏
  • 举报
回复
没人对二者的性能做过测试吗?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧