2

i am trying to store my info level log amd error level log in separate files. My error messages are being dumped correctly but info messages contain both error as well as info messages. Following is my properties file:

log4j.rootLogger = DEBUG, inf, err 

log4j.appender.inf = org.apache.log4j.FileAppender
log4j.appender.inf.layout = org.apache.log4j.PatternLayout
log4j.appender.inf.layout.ConversionPattern = %d{ISO8601} %-5p %c ~ %m%n
log4j.appender.inf.File = information.log
log4j.appender.inf.Threshold = INFO
log4j.appender.inf.filter = org.apache.log4j.varia.LevelMatchFilter
log4j.appender.inf.filter.levelToMatch = INFO
log4j.appender.inf.Append = false
log4j.appender.inf.AcceptOnMatch = true
log4j.appender.inf.filter = org.apache.log4j.varia.DenyAllFilter

log4j.appender.err = org.apache.log4j.FileAppender
log4j.appender.err.layout = org.apache.log4j.PatternLayout
log4j.appender.err.layout.ConversionPattern = %d{ISO8601} %-5p %c ~ %m%n
log4j.appender.err.File = errormsg.log
log4j.appender.err.Threshold = ERROR
log4j.appender.err.filter = org.apache.log4j.varia.LevelMatchFilter
log4j.appender.err.filter.levelToMatch = ERROR
log4j.appender.err.Append = false

and my .java file is as follows:

package test;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class HelloLogger {

     private static Logger logger = Logger.getLogger(HelloLogger.class);

        public static void main(String[] args) {
            PropertyConfigurator.configure("log4jconfig.properties");
            logger.error("This is error");
            logger.info("This is info");
            logger.debug("This is debug");
        } 
}

Pls help.. Thanx in advance

manisha
  • 665
  • 3
  • 8
  • 15

1 Answers1

0

According to this answer, the properties file is not designed to handle filters, but it may work if you change your properties file to separate the first appender's filters with IDs (ie 1 and 2):

log4j.appender.inf.filter.1 = org.apache.log4j.varia.LevelMatchFilter
log4j.appender.inf.filter.1.levelToMatch = INFO
log4j.appender.inf.Append = false
log4j.appender.inf.AcceptOnMatch = true
log4j.appender.inf.filter.2 = org.apache.log4j.varia.DenyAllFilter
Community
  • 1
  • 1
Egg
  • 1,986
  • 16
  • 20