###############################################################################
# Copyright (c) 2013 Willink Transformations and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v2.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v20.html
#
# Contributors:
#     E.D.Willink - initial API and implementation
###############################################################################
# Log configuration for MDT/OCT Xtext Tests logging.
# This log configuration will be used for the non-UI parts of Xtext.
#
# For your convenience: valid log levels are (from least to most significant):
# TRACE, DEBUG, INFO, WARN, ERROR and FATAL
# Log4J manual: http://logging.apache.org/log4j/1.2/manual.html
# Xtext log configuration info: http://wiki.eclipse.org/Xtext_Project_Plan/Features/Logging

# Root logger configuration. Don't change this.
log4j.rootLogger=DEBUG, default

# This appender will write to the stdout console
log4j.appender.default=org.apache.log4j.ConsoleAppender
log4j.appender.default.layout=org.apache.log4j.PatternLayout
log4j.appender.default.layout.ConversionPattern=%-4r [%t] %-5p %35.35c %x - %m%n

# Configure your log categories below:
#log4j.logger.org.eclipse=INFO
log4j.logger.org.eclipse.ocl=TRACE
log4j.logger.org.eclipse.ocl.examples.test.xtext=TRACE
