# This file defines the log4j configuration for EMFCompare plug-ins.
# It is installed as a fragment of org.apache.log4j,
# and defines an appender for logs written from EMFCompare to
# a rolling file.
# ___________________________________________________________________
# Set root logger level to debug and its only appender to default.
log4j.rootLogger=error, default
# default is set to be a ConsoleAppender.
log4j.appender.default=org.apache.log4j.ConsoleAppender
# default uses PatternLayout.
log4j.appender.default.layout=org.apache.log4j.PatternLayout
log4j.appender.default.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c %x - %m%n

# ___________________________________________________________________
# EMFCompare-specific configuration
#
log4j.logger.org.eclipse.emf.compare=OFF, default
# We don't want these logs to be routed to other parent loggers
log4j.additivity.org.eclipse.emf.compare = false
log4j.appender.EMFCFile=org.apache.log4j.RollingFileAppender
log4j.appender.EMFCFile.File=emfcompare.log
# Keep 10 back-up files of at most 2MB
log4j.appender.EMFCFile.MaxFileSize=2MB
log4j.appender.EMFCFile.MaxBackupIndex=10
# We would like to use EnhancedPatternLayout but it requires log4j 1.2.16+
# which is not in orbit
log4j.appender.EMFCFile.layout=org.apache.log4j.PatternLayout
# Date [Thread name] LEVEL 3.last.segments.of.logger.name <NDC Tag> - message\n
log4j.appender.EMFCFile.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{3} %x - %m%n
