需要一个通过属性配置log4j RollingFileAppender的工作示例 [英] Need a working example of configuring log4j RollingFileAppender via properties

查看:77
本文介绍了需要一个通过属性配置log4j RollingFileAppender的工作示例的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用log4j进行日志记录,并使用属性文件进行配置.当前,我的日志文件太大(3.5 GB对于日志文件来说太大).因此,认为我需要使用RollingFileAppender-但是当我这样做时,日志文件会继续变得过大.我相信我只是配置错误;没有人有配置RollingFileAppender的工作示例吗?

I am using log4j for logging, and a property file for configuration. Currently, my log files are too big (3.5 GB is too large for a log file). So think I need to use RollingFileAppender - but when I do so the log file continues to grow overly large. I believe I have just misconfigured it; does anyone have a working example of configuring RollingFileAppender?

记录下来,我当前的配置如下:

For the record, my current configuration looks like this:

log4j.appender.MAIN_LOG.File=${catalina.base}/logs/webtop.log
log4j.appender.MAIN_LOG=org.apache.log4j.RollingFileAppender
log4j.appender.MAIN_LOG.layout=com.mycompany.util.log.Log4JSimpleLayout
log4j.appender.MAIN_LOG.DatePattern='.'yyyy-MM-dd
log4j.appender.MAIN_LOG.MaxFileSize=10MB
log4j.appender.MAIN_LOG.MaxBackupIndex=99
log4j.appender.MAIN_LOG.append=true
log4j.rootCategory=ALL, MAIN_LOG

RollingFileAppender的替代方法也是一个很好的解决方案.

An alternative to RollingFileAppender would also be a fine solution.

推荐答案

我相信我只是配置错误;没有人有配置RollingFileAppender的有效示例吗?

I believe I have just misconfigured it; does anyone have a working example of configuring RollingFileAppender?

这对我@mcherm似乎很好.见下文.

This seems to work fine for me @mcherm. See below.

您是否确定正在使用自己认为的log4j.properties?尝试将.File更改为另一个路径,以查看日志输出是否进入新文件.您使用的是哪个版本的log4j?我正在运行1.2.15.

Are you sure that you are using the log4j.properties that you think you are? Try changing the .File to another path to see if log output goes to the new file. What version of log4j are you using? I'm running 1.2.15.

希望这会有所帮助.

我创建了以下测试程序:

I created the following test program:

package com.j256.ormlite;
import org.apache.log4j.Logger;
public class Foo {
    private static Logger logger = Logger.getLogger(Foo.class);
    public static void main(String[] args) {
        for (int x = 0; x < 10000000; x++) {
            logger.error("goodness this shouldn't be happening to us right here!!!!");
        }
    }
}

我的log4j.properties文件保存:

My log4j.properties file holds:

log4j.appender.MAIN_LOG=org.apache.log4j.RollingFileAppender
log4j.appender.MAIN_LOG.File=${catalina.base}/logs/webtop.log
log4j.appender.MAIN_LOG.layout=com.j256.ormlite.Log4JSimpleLayout
log4j.appender.MAIN_LOG.MaxFileSize=10MB
log4j.appender.MAIN_LOG.MaxBackupIndex=5
log4j.appender.MAIN_LOG.append=true
log4j.rootCategory=ALL, MAIN_LOG

请注意,我删除了对RollingFileAppender无效的DatePattern.我的布局是:

Notice that I removed the DatePattern which wasn't valid for my RollingFileAppender. My layout is:

package com.j256.ormlite;
import org.apache.log4j.spi.LoggingEvent;
public class Log4JSimpleLayout extends org.apache.log4j.Layout {
    @Override
    public String format(LoggingEvent event) {
        return "log message = " + event.getMessage().toString() + "\n";
    }
    @Override
    public boolean ignoresThrowable() {
        return true;
    }
    public void activateOptions() {
    }
}

使用-Dcatalina.base=/tmp/运行时,在/tmp/logs/中得到的文件上升到索引#5,大小为10mb.如果我调MaxFileSizeMaxBackupIndex,它会适当调整.

Running with -Dcatalina.base=/tmp/ I get files in /tmp/logs/ which go up to index #5 and are 10mb in size. If I tune the MaxFileSize or the MaxBackupIndex, it adjusts appropriately.

这篇关于需要一个通过属性配置log4j RollingFileAppender的工作示例的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆