Log4J学习【二十】ConsoleAppender

前面已经多次用到了ConsoleAppender,我们已经知道,ConsoleAppender就是直接把日志内容输出到控制台上面,这里我们再来看看他的一些配置项。还是定位到ConsoleAppender代码。首先ConsoleAppender是继承WriterAppender的,所以不用多说,ConsoleAppender也有encoding和immediateFlush两个配置项。作用不在多说,来看看其他的配置:
target:设置采用哪种方式将日志输出到控制台。对于Java来说,将内容输出到控制台有两种方式,System.out和System.err,这里可以通过指定System.out或System.err来确定采用哪种方式输出日志。
使用ConsoleAppender,由于没有需要特殊指定的类似Writer的对象,所以整个ConsoleAppender可以直接在配置脚本中完成:
log4j.rootLogger=INFO,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
log4j.appender.stdout.target=System.err


对于ConsoleAppender来说,在开发阶段还是比较有用的,能直接在Eclipse中看到输出的日志内容,但是在实际的产品阶段,我们更希望将日志输出到指定的文件上查看,这就需要用到FileAppender。之前已经简单的看过这个类了。FileAppender其实也是继承WriterAppender的,只是提供了一个指定的FileWriter而已。下面还是先来看看FileAppender除了encoding和immediateFlush两个配置项的其它配置:
file:指定要保存日志的文件名称;
append:一个布尔值,默认为true。这个值很好理解,如果append=true,则每次记录的日志是采用追加的方式添加到文件当中,如果append=false,则每次记录日志都是使用覆写的方式,大部分情况下,我们都保持默认值就行了。
bufferedIO:一个布尔值,默认为false。这个值也很好理解,当bufferedIO=false的时候,相当于直接打开了一个FileWriter,每次日志都是直接写入到文件里面。如果bufferedIO=true,则FileAppender会为我们在FileWriter之上再包装一个BufferedWriter,在日志量很大的情况下,这会适当提高系统整体性能。
bufferSize:如果设置了bufferedIO为true,则可以通过设置BufferSize参数来调整BufferedWriter的缓存大小。
要通过配置的方式创建FileAppender,也是非常简单的,一个小例子:
log4j.rootLogger=DEBUG,file
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.layout=org.apache.log4j.SimpleLayout
log4j.appender.file.file=log.log
log4j.appender.file.bufferedIO=true
log4j.appender.file.bufferSize=1024

这里就可以简单写一个测试来看看bufferedIO对性能的提升:
@Test
public void testFileAppender() {

    Logger logger = Logger.getLogger("cd.itcast");
    Logger barLogger = Logger.getLogger("cd.itcast.log");
    Long begin=System.currentTimeMillis();
    for (int i = 0; i < 10000; i++) {
        logger.warn("logger warn");
        logger.debug("logger debug");
        barLogger.info("bar logger info");
        barLogger.debug("bar logger debug long long ");
    }
    System.out.println(begin-System.currentTimeMillis());
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值