Log4j configuration

Basic log4j configuration in an Eclipse project:

  • save log4j.properties in /src folder, or in /src/main/resources for a Maven project. After building, it will end up in /bin. The goal is to have this file in the classpath
  • Add log4j.jar to build path

Contents of log4j.properties

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%6r [%t] %-5p %c{1} - %m%n

log4j.logger.com.my.class=DEBUG

Add a file appender:

# FileAppender
log4j.appender.FA=org.apache.log4j.RollingFileAppender
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=%6r %-5p %m%n
log4j.appender.FA.File=/var/log/myapp.log

# classes in package com.tnsi use INFO level
# output is logged to FA
log4j.logger.com=DEBUG

Root logger to console and a file appender only for com.my.class classes:

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.NULL=org.apache.log4j.varia.NullAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c{1}:%M - %m%n
log4j.appender.A1.Threshold=INFO

log4j.appender.F1=org.apache.log4j.RollingFileAppender
log4j.appender.F1.layout=org.apache.log4j.PatternLayout
log4j.appender.F1.layout.ConversionPattern=%m%n
log4j.appender.F1.File=/var/log/application.log
log4j.appender.F1.Threshold=DEBUG

log4j.logger.org.apache=INFO,NULL
log4j.logger.com.my.class=DEBUG,F1