Need a working example of configuring log4j RollingFileAppender via properties

前端 未结 4 1038
北恋
北恋 2021-02-02 18:10

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 Ro

4条回答
  •  天涯浪人
    2021-02-02 18:37

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

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

    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.

    Hope this helps.


    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!!!!");
            }
        }
    }
    

    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
    

    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() {
        }
    }
    

    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.

提交回复
热议问题