user1882812
user1882812

Reputation: 946

log4j additivity with Console- and multiple FileAppender

today i found out how to configure my log4j.properties to log in different files:

log4j.rootLogger=ALL, ConsoleAppender, FA1, FA2, FA3

#Define which packages use which appenders
log4j.logger.de.package1=ALL, FA1
log4j.logger.de.package2=ALL, FA2
log4j.logger.de.package3=ALL, FA3

#Ensure the logs don't add to each other
log4j.additivity.de.package1=false
log4j.additivity.de.package2=false
log4j.additivity.de.package3=false

#If you want to append the file(not to override when it already exists):
#log4j.appender.FileAppender.Append=true

log4j.appender.ConsoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.ConsoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ConsoleAppender.layout.ConversionPattern=%d (%F:%L) %-5p %c - %m%n

log4j.appender.FA1=org.apache.log4j.FileAppender
log4j.appender.FA1.Threshold=WARN
log4j.appender.FA1.File=./logs/FA1.log
log4j.appender.FA1.layout=org.apache.log4j.PatternLayout
log4j.appender.FA1.layout.ConversionPattern=%d (%F:%L) %-5p %c - %m%n

log4j.appender.FA2=org.apache.log4j.FileAppender
log4j.appender.FA2.Threshold=WARN
log4j.appender.FA2.File=./logs/FA2.log
log4j.appender.FA2.layout=org.apache.log4j.PatternLayout
log4j.appender.FA2.layout.ConversionPattern=%d (%F:%L) %-5p %c - %m%n

log4j.appender.FA3=org.apache.log4j.FileAppender
log4j.appender.FA3.Threshold=WARN
log4j.appender.FA3.File=./logs/FA3.log
log4j.appender.FA3.layout=org.apache.log4j.PatternLayout
log4j.appender.FA3.layout.ConversionPattern=%d (%F:%L) %-5p %c - %m%n

As you can see i defined the additivity to false but with that i have the problem that there is no console output anymore.

if i set the additivity to true all messages are logged twice and in each fileappender.

How can i solve this? i dont want double entries and i dont want each message in each log-file but i want to have all messages in my console.

kinda tricky or is it more simple than i think?

Upvotes: 0

Views: 2069

Answers (1)

user1882812
user1882812

Reputation: 946

Found solution:

#Define which packages use which appenders
log4j.logger.de.package1=ALL, FA1, ConsoleAppender
log4j.logger.de.package2=ALL, FA2, ConsoleAppender
log4j.logger.de.package3=ALL, FA3, ConsoleAppender

I need to add ConsoleAppender to each package as well.

Upvotes: 1

Related Questions