Configuration Properties File for Log4j 1.2.17

Q

How to write a configuration properties file for Log4j 1.2.17? I just want to use the basic functionalities to specify the log file name and the log level.

✍: FYIcenter.com

A

Below is a simple configuration file, log4j.properties, that support the Log4j API:

# Copyright (c) 2015 FYIcenter.com
log4j.rootLogger=DEBUG, MyConsole, MyFile
log4j.appender.MyConsole=org.apache.log4j.ConsoleAppender
log4j.appender.MyConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.MyConsole.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%n

log4j.appender.MyFile=org.apache.log4j.FileAppender
log4j.appender.MyFile.File=log4j.log
log4j.appender.MyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.MyFile.layout.ConversionPattern=%-5r %-5p [%t] %c{2} - %m%n

This sample configuration file log4j2.properties does the following:

  • It sets the default logger "rootLogger" to the DEBUG level.
  • It associates "rootLogger" with 2 appenders: MyConsole and MyFile.
  • It sets appenders with different logging string patterns.

Below is a simple Java program Log4jPropertiesConfig.java that uses the above Log4j configuration:

// Copyright (c) 2015 FYIcenter.com
import org.apache.log4j.*;
public class Log4jPropertiesConfig {
   private static final Logger logger 
      = Logger.getLogger("Log4jPropertiesConfig");
   public static void main(String[] args) {
      PropertyConfigurator.configure("log4j.properties");
	  logger.fatal("Hello - fatal");
	  logger.error("Hello - error");
      logger.warn("Hello - warn");
      logger.info("Hello - info");
      logger.debug("Hello - debug");
      logger.trace("Hello - trace");
   }
}

Compile and run it with log4j-1.2.17.jar:

fyicenter>java -version
java version "1.7.0_45"

fyicenter>javac -cp \local\apache-log4j-1.2.17\log4j-1.2.17.jar
   Log4jPropertiesConfig.java

fyicenter>java -cp .;\local\apache-log4j-1.2.17\log4j-1.2.17.jar 
   Log4jPropertiesConfig
   
0    FATAL [main]  Log4jPropertiesConfig  - Hello - fatal
2    ERROR [main]  Log4jPropertiesConfig  - Hello - error
2    WARN  [main]  Log4jPropertiesConfig  - Hello - warn
2    INFO  [main]  Log4jPropertiesConfig  - Hello - info
2    DEBUG [main]  Log4jPropertiesConfig  - Hello - debug

fyicenter>type log4j.log
0     FATAL [main] Log4jPropertiesConfig - Hello - fatal
2     ERROR [main] Log4jPropertiesConfig - Hello - error
2     WARN  [main] Log4jPropertiesConfig - Hello - warn
2     INFO  [main] Log4jPropertiesConfig - Hello - info
2     DEBUG [main] Log4jPropertiesConfig - Hello - debug

Everything works as expected.

Back to FAQ for Log4j - A Logging Library for Java.

2016-06-28, 918👍, 0💬