GroupRollingFileAppender.java 文件源码

java
阅读 22 收藏 0 点赞 0 评论 0

项目:jcode 作者:
@SuppressWarnings("resource")
protected void subAppend(CountingQuietWriterEx qw, LoggingEvent event)
        throws IOException {

    // 此句不加可以节省20%的资源,但程序退出时日志会缺少
    if (!bufferedIO)
        qw.flush();

    // 超过大小备份日志文件,并创建新文件
    if (qw != null) {
        long size = ((CountingQuietWriter) qw).getCount();
        if (size >= maxFileSize) {// 超过单个日志大小
            final String fileName = qw.getFileName();
            String idx = fileName.substring(fileName.lastIndexOf(".") + 1);
            qw = rollOver(qw, Integer.parseInt(idx) + 1);
        } else {
            String logDate = qw.getLogDate();
            String today = format.format(new Date(event.timeStamp));
            if (!logDate.equals("") && !logDate.equals(today)) {// 日切情况
                qw = rollOver(qw, 0);
            }
        }
    }

    // 写日志,一定要调用write(string)方法,因为只有它才会累加count
    qw.write(this.layout.format(event));
    if (layout.ignoresThrowable()) {
        // layout中忽略异常的处理,由此处写异常信息
        String[] s = event.getThrowableStrRep();
        if (s != null) {
            int len = s.length;
            for (int i = 0; i < len; i++) {
                qw.write(s[i]);
                qw.write(Layout.LINE_SEP);
            }
        }
    }

}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号