Configuration Properties File for Apache Log4j 1.x

Q

How to write a configuration properties file for Log4j 1.x? 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) 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) 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 log4j-1.2.17.jar Log4jPropertiesConfig.java

fyicenter> java -cp .;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.

 

Run Trivial.java Example in log4j-1.2.17.zip

Compile and Run Program with Apache Log4j 1.x

Using Apache Log4j 1.x in Java Programs

⇑⇑ FAQ for Apache Log4j

2016-06-28, 3726🔥, 0💬