################################################################################
#
#    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.
#
################################################################################

# Common pattern layout for appenders
log4j2.pattern = %d{ISO8601} | %-5p | %-16t | %-32c{1} | %X{bundle.id} - %X{bundle.name} - %X{bundle.version} | %X{currentGraph} - %X{nodeId} | %m%n


# Common properties
maxFileSize=100MB
maxBackupIndex=20
logDir=/var/log/onap
componentName=sdnc
logDirectory=${logDir}/${componentName}
karafLogName=karaf
errorLogName=error
metricsLogName=metrics
auditLogName=audit
debugLogName=debug


# Root logger
log4j2.rootLogger.level = INFO
# uncomment to use asynchronous loggers, which require mvn:com.lmax/disruptor/3.3.2 library
#log4j2.rootLogger.type = asyncRoot
#log4j2.rootLogger.includeLocation = false
log4j2.rootLogger.appenderRef.RollingFile.ref = RollingFile
log4j2.rootLogger.appenderRef.PaxOsgi.ref = PaxOsgi
log4j2.rootLogger.appenderRef.Console.ref = Console
log4j2.rootLogger.appenderRef.Console.filter.threshold.type = ThresholdFilter
log4j2.rootLogger.appenderRef.Console.filter.threshold.level = ${karaf.log.console:-OFF}

# Loggers configuration

# Spifly logger
log4j2.logger.spifly.name = org.apache.aries.spifly
log4j2.logger.spifly.level = WARN

# Security audit logger
log4j2.logger.audit.name = org.apache.karaf.jaas.modules.audit
log4j2.logger.audit.level = INFO
log4j2.logger.audit.additivity = false
log4j2.logger.audit.appenderRef.AuditRollingFile.ref = AuditRollingFile

# Appenders configuration

# Console appender not used by default (see log4j2.rootLogger.appenderRefs)
log4j2.appender.console.type = Console
log4j2.appender.console.name = Console
log4j2.appender.console.layout.type = PatternLayout
log4j2.appender.console.layout.pattern = ${log4j2.pattern}

# Rolling file appender
log4j2.appender.rolling.type = RollingRandomAccessFile
log4j2.appender.rolling.name = RollingFile
log4j.appender.rolling.level = INFO
log4j2.appender.rolling.fileName = ${logDirectory}/${karafLogName}.log
log4j2.appender.rolling.filePattern = ${logDirectory}/${karafLogName}.log.%i
# uncomment to not force a disk flush
#log4j2.appender.rolling.immediateFlush = false
log4j2.appender.rolling.append = true
log4j2.appender.rolling.layout.type = PatternLayout
log4j2.appender.rolling.layout.pattern = ${log4j2.pattern}
log4j2.appender.rolling.policies.type = Policies
log4j2.appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.rolling.policies.size.size = ${maxFileSize}

# Audit file appender - not currently used, so commented out
log4j2.appender.audit.type = RollingRandomAccessFile
log4j2.appender.audit.name = AuditRollingFile
log4j2.appender.audit.fileName = ${logDirectory}/${auditLogName}.log
log4j2.appender.audit.filePattern = ${logDirectory}/${auditLogName}.log.%i
log4j2.appender.audit.append = true
log4j2.appender.audit.layout.type = PatternLayout
log4j2.appender.audit.layout.pattern = ${log4j2.pattern}
log4j2.appender.audit.policies.type = Policies
log4j2.appender.audit.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.audit.policies.size.size = ${maxFileSize}

# OSGi appender
log4j2.appender.osgi.type = PaxOsgi
log4j2.appender.osgi.name = PaxOsgi
log4j2.appender.osgi.filter = *


#ECOMP Debug appender
log4j2.appender.debug.type = RollingRandomAccessFile
log4j2.appender.debug.name = DebugRollingFile
log4j2.appender.debug.fileName = ${logDirectory}/${debugLogName}.log
log4j2.appender.debug.filePattern = ${logDirectory}/${debugLogName}.log.%i
log4j2.appender.debug.append = true
log4j2.appender.debug.layout.type = PatternLayout
log4j2.appender.debug.layout.pattern = ${log4j2.pattern}
log4j2.appender.debug.policies.type = Policies
log4j2.appender.debug.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.debug.policies.size.size = ${maxFileSize}


#Error appender
log4j2.appender.error.type = RollingRandomAccessFile
log4j2.appender.error.name = ErrorRollingFile
log4j2.appender.error.fileName = ${logDirectory}/${errorLogName}.log
log4j2.appender.error.filePattern = ${logDirectory}/${errorLogName}.log.%i
log4j2.appender.error.append = true
log4j2.appender.error.layout.type = PatternLayout
log4j2.appender.error.layout.pattern = ${log4j2.pattern}
log4j2.appender.error.policies.type = Policies
log4j2.appender.error.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.error.policies.size.size = ${maxFileSize}

#Metrics appender - not used so commented out
#log4j2.appender.metrics.type = RollingRandomAccessFile
#log4j2.appender.metrics.name = MetricsRollingFile
#log4j2.appender.metrics.fileName = ${logDirectory}/${metricsLogName}.log
#log4j2.appender.metrics.filePattern = ${logDirectory}/${metricsLogName}.log.%i
#log4j2.appender.metrics.append = true
#log4j2.appender.metrics.layout.type = PatternLayout
#log4j2.appender.metrics.layout.pattern = ${log4j2.pattern}
#log4j2.appender.metrics.policies.type = Policies
#log4j2.appender.metrics.policies.size.type = SizeBasedTriggeringPolicy
#log4j2.appender.metrics.policies.size.size = ${maxFileSize}