#
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.
#

##
# Apache Synapse is now able to create per-service trace logs at runtime. Thus while a message
# is being processed through a Proxy service or the Synapse service (i.e. message mediation through
# the 'main' sequence), tracing may be turned 'on' at any Proxy, Sequence or Mediator level. This
# trace state 'flows' with the message - i.e from a trace enabled sequence to another sequence etc.
# and applies to all mediators within a trace enabled sequence etc. unless another sequence or
# mediator does not override and specify a different trace setting.
##

# the root category is ERROR (applies for all 3rd party JARs etc) and will be logged to the
# LOG_APPENDER and the CONSOLE_APPENDER
log4j.rootCategory=ERROR, LOG_APPENDER, CONSOLE_APPENDER

# NOTE: The default INFO level logging configuration is suitable for production deployments.
#       Changing log level to DEBUG provides more information on what happens inside Synapse
#       at the runtime, but this comes with a severe performance penalty.

# Default Synapse log level is info
log4j.category.org.apache.synapse=INFO

# Setting the following entry to DEBUG will cause all Synapse transports (PassThrough,
# NHTTP, VFS, FIX etc.) to generate debug level logs. In case of PassThrough and NHTTP
# transports, this will also generate debug level logs for HTTP connections, sessions,
# message headers and wire-level data. To exercise more fine-grained control over how
# HTTP transports generate debug logs, use the options given below.
log4j.category.org.apache.synapse.transport=INFO

# Uncomment to enable logging for HTTP headers. Uncomment the SourceHeaders entry to log the
# headers exchanged between client and Synapse. Uncomment the TargetHeaders entry to log the
# the headers exchanged between Synapse and the backend server.
#log4j.category.org.apache.synapse.transport.http.headers=DEBUG
#log4j.category.org.apache.synapse.transport.http.headers.SourceHeaders=DEBUG
#log4j.category.org.apache.synapse.transport.http.headers.TargetHeaders=DEBUG

# Uncomment to enable wire-level message logging (headers + body). Uncomment the SourceWire
# entry to log the messages exchanged between client and Synapse. Uncomment the TargetWire
# entry to log the messages exchanged between Synapse and the backend server.
#log4j.category.org.apache.synapse.transport.http.wire=DEBUG
#log4j.category.org.apache.synapse.transport.http.wire.SourceWire=DEBUG
#log4j.category.org.apache.synapse.transport.http.wire.TargetWire=DEBUG

# Uncomment to enable logging for HTTP I/O sessions. Uncomment the SourceSession entry to log
# the session events between client and Synapse. Uncomment the TargetSession entry to log the
# session events between Synapse and the backend server.
#log4j.category.org.apache.synapse.transport.http.session=DEBUG
#log4j.category.org.apache.synapse.transport.http.session.SourceSession=DEBUG
#log4j.category.org.apache.synapse.transport.http.session.TargetSession=DEBUG

# Uncomment to enable logging for HTTP connections. Uncomment the SourceConnection entry to
# log the connections between client and Synapse. Uncomment the TargetConnection entry to
# log the connections between Synapse and the backend server.
#log4j.category.org.apache.synapse.transport.http.conn=DEBUG
#log4j.category.org.apache.synapse.transport.http.conn.SourceConnection=DEBUG
#log4j.category.org.apache.synapse.transport.http.conn.TargetConnection=DEBUG

log4j.category.org.apache.axis2.transport=INFO
log4j.category.samples.util=INFO
#log4j.category.org.apache.synapse.transport.nhttp.util=DEBUG
#log4j.category.org.apache.http.impl.nio.reactor=DEBUG
#log4j.category.samples.userguide=INFO

# The console appender is used to display general information at console
log4j.appender.CONSOLE_APPENDER=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE_APPENDER.layout.ConversionPattern=%d{ISO8601} [%X{ip}-%X{host}] [%t] %5p %c{1} %m%n

# Configure the service logger at INFO level. Writes only run-time/mediation-time audit messages
log4j.category.SERVICE_LOGGER=INFO, SERVICE_APPENDER
log4j.additivity.SERVICE_LOGGER=false
log4j.appender.SERVICE_APPENDER=org.apache.log4j.RollingFileAppender
log4j.appender.SERVICE_APPENDER.File=logs/service.log
log4j.appender.SERVICE_APPENDER.MaxFileSize=1000KB
log4j.appender.SERVICE_APPENDER.MaxBackupIndex=10
log4j.appender.SERVICE_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.SERVICE_APPENDER.layout.ConversionPattern=%d{ISO8601} [%X{ip}-%X{host}] [%t] %5p %c{1} %m%n

# The trace logger dumps enough information @INFO level, but maybe pushed upto TRACE.
# Writes only run-time/mediation time tracing/debug messages for messages passing through trace
# enabled sequences, mediators and services. Enabling tracing on these has a performance impact
log4j.category.TRACE_LOGGER=INFO, TRACE_APPENDER
log4j.additivity.TRACE_LOGGER=false
log4j.appender.TRACE_APPENDER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.TRACE_APPENDER.File=logs/trace.log
log4j.appender.TRACE_APPENDER.Append=true
log4j.appender.TRACE_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.TRACE_APPENDER.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%X{ip}-%X{host}] [%t] %5p %c{1} %m%n

# The standard log file that may be set upto DEBUG/TRACE for general purpose logging
# Logs information at startup/initialization etc. and also could be used as the developer log
log4j.appender.LOG_APPENDER=org.apache.log4j.RollingFileAppender
log4j.appender.LOG_APPENDER.File=logs/synapse.log
log4j.appender.LOG_APPENDER.MaxFileSize=1000KB
log4j.appender.LOG_APPENDER.MaxBackupIndex=10
log4j.appender.LOG_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.LOG_APPENDER.layout.ConversionPattern=%d{ISO8601} [%X{ip}-%X{host}] [%t] %5p %c{1} %m%n
