0

I have two classes A and B. I want to log class A to a.log and class B to b.log with a single log4j.properties in the root directory, my efforts so far:

In class A:

private static final Logger l = Logger.getLogger("classa");

In class B:

private static final Logger l = Logger.getLogger("classb");

log4j.properties:

log4j.logger.classa=ALL,A1
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.append=false
log4j.appender.A1.MaxBackupIndex=1
log4j.appender.A1.file=a.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.logger.classb=ALL,A2
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.append=false
log4j.appender.A2.MaxBackupIndex=1
log4j.appender.A2.file=b.log
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

Any ideas?

Laughingman
  • 265
  • 1
  • 4
  • 11

1 Answers1

1

This works!

Retrieve via class name:

private static final Logger l = Logger.getLogger(MyClass.class.getName());

Two class name logger:

log4j.logger.my.package.MyClassA=Debug,A1
log4j.logger.my.package.MyClassB=Debug,A2
Laughingman
  • 265
  • 1
  • 4
  • 11