| <?xml version="1.0" encoding="UTF-8"?> | 
 | <!-- | 
 | 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. | 
 | --> | 
 | <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> | 
 |  | 
 | <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> | 
 |    <throwableRenderer class="com.cloud.utils.log.CglibThrowableRenderer"/> | 
 |  | 
 |    <!-- ================================= --> | 
 |    <!-- Preserve messages in a local file --> | 
 |    <!-- ================================= --> | 
 |  | 
 |    <!-- A regular appender FIXME implement code that will close/reopen logs on SIGHUP by logrotate FIXME make the paths configurable using the build system --> | 
 |    <appender name="FILE" class="org.apache.log4j.rolling.RollingFileAppender"> | 
 |       <param name="Append" value="true"/> | 
 |       <param name="Threshold" value="TRACE"/> | 
 |       <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> | 
 |         <param name="FileNamePattern" value="@MSLOG@.%d{yyyy-MM-dd}.gz"/> | 
 |         <param name="ActiveFileName" value="@MSLOG@"/> | 
 |       </rollingPolicy> | 
 |       <layout class="org.apache.log4j.EnhancedPatternLayout"> | 
 |          <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1.}] (%t:%x) %m%n"/> | 
 |       </layout> | 
 |    </appender> | 
 |     | 
 |    <appender name="APISERVER" class="org.apache.log4j.rolling.RollingFileAppender"> | 
 |       <param name="Append" value="true"/> | 
 |       <param name="Threshold" value="DEBUG"/> | 
 |       <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> | 
 |         <param name="FileNamePattern" value="@APISERVERLOG@.%d{yyyy-MM-dd}.gz"/> | 
 |         <param name="ActiveFileName" value="@APISERVERLOG@"/> | 
 |       </rollingPolicy> | 
 |       <layout class="org.apache.log4j.EnhancedPatternLayout"> | 
 |          <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1.}] (%t:%x) %m%n"/> | 
 |       </layout> | 
 |    </appender> | 
 |  | 
 |    <appender name="AWSAPI" class="org.apache.log4j.rolling.RollingFileAppender"> | 
 |       <param name="Append" value="true"/> | 
 |       <param name="Threshold" value="DEBUG"/> | 
 |       <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> | 
 |         <param name="FileNamePattern" value="@AWSAPILOG@.%d{yyyy-MM-dd}.gz"/> | 
 |         <param name="ActiveFileName" value="@AWSAPILOG@"/> | 
 |       </rollingPolicy> | 
 |       <layout class="org.apache.log4j.EnhancedPatternLayout"> | 
 |          <param name="ConversionPattern" value="%d{ISO8601} %-5p [%c{1.}] (%t:%x) %m%n"/> | 
 |       </layout> | 
 |    </appender> | 
 |    <!-- ============================== --> | 
 |    <!-- Append warnings+ to the syslog if it is listening on UDP port FIXME make sysloghost configurable! --> | 
 |    <!-- ============================== --> | 
 |  | 
 |    <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender"> | 
 |       <param name="Threshold" value="WARN"/> | 
 |       <param name="SyslogHost" value="localhost"/> | 
 |       <param name="Facility" value="LOCAL6"/> | 
 |       <layout class="org.apache.log4j.PatternLayout"> | 
 |          <param name="ConversionPattern" value="%-5p [%c{3}] (%t:%x) %m%n"/> | 
 |       </layout> | 
 |    </appender> | 
 |  | 
 |    <!-- ============================== --> | 
 |    <!-- Append alerts to the syslog if it is configured --> | 
 |    <!-- ============================== --> | 
 |  | 
 |    <appender name="ALERTSYSLOG" class="org.apache.cloudstack.syslog.AlertsSyslogAppender"> | 
 |       <param name="Threshold" value="WARN"/> | 
 |       <param name="SyslogHosts" value=""/> | 
 |       <param name="Facility" value="LOCAL6"/> | 
 |       <layout class="org.apache.log4j.PatternLayout"> | 
 |          <param name="ConversionPattern" value="%-5p [%c{3}] (%t:%x) %m%n"/> | 
 |       </layout> | 
 |    </appender> | 
 |  | 
 |    <!-- ============================== --> | 
 |    <!-- send alert warnings+ as the SNMP trap if it is configured! --> | 
 |    <!-- ============================== --> | 
 |  | 
 |    <appender name="SNMP" class="org.apache.cloudstack.alert.snmp.SnmpTrapAppender"> | 
 |       <param name="Threshold" value="WARN"/> | 
 |       <param name="SnmpManagerIpAddresses" value=""/> | 
 |       <param name="SnmpManagerPorts" value=""/> | 
 |       <param name="SnmpManagerCommunities" value=""/> | 
 |       <layout class="org.apache.cloudstack.alert.snmp.SnmpEnhancedPatternLayout"> | 
 |          <param name="PairDelimiter" value="//"/> | 
 |          <param name="KeyValueDelimiter" value="::"/> | 
 |       </layout> | 
 |    </appender> | 
 |  | 
 |    <!-- ============================== --> | 
 |    <!-- Append messages to the console --> | 
 |    <!-- ============================== --> | 
 |  | 
 |    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> | 
 |       <param name="Target" value="System.out"/> | 
 |       <param name="Threshold" value="INFO"/> | 
 |       <layout class="org.apache.log4j.EnhancedPatternLayout"> | 
 |          <param name="ConversionPattern" value="%-5p [%c{1.}] (%t:%x) %m%n"/> | 
 |       </layout> | 
 |    </appender> | 
 |  | 
 |    <!-- ================ --> | 
 |    <!-- Limit categories --> | 
 |    <!-- ================ --> | 
 |  | 
 |    <category name="com.cloud"> | 
 |      <priority value="DEBUG"/> | 
 |    </category> | 
 |     | 
 |    <category name="org.apache.cloudstack"> | 
 |      <priority value="DEBUG"/> | 
 |    </category> | 
 |     | 
 |    <category name="org.apache.cloudstack"> | 
 |       <priority value="DEBUG"/> | 
 |    </category> | 
 |  | 
 |    <category name="com.cloud.utils.nio"> | 
 |      <priority value="INFO"/> | 
 |    </category> | 
 |     | 
 |    <!-- Limit the org.apache category to INFO as its DEBUG is verbose --> | 
 |    <category name="org.apache"> | 
 |       <priority value="INFO"/> | 
 |    </category> | 
 |  | 
 |    <category name="org.apache.cloudstack"> | 
 |       <priority value="DEBUG"/> | 
 |    </category> | 
 |  | 
 |    <category name="org.apache.cloudstack.api.command"> | 
 |       <priority value="TRACE"/> | 
 |    </category> | 
 |     | 
 |    <category name="org"> | 
 |       <priority value="INFO"/> | 
 |    </category> | 
 |     | 
 |    <category name="org.springframework"> | 
 |       <priority value="WARN"/> | 
 |    </category> | 
 |     | 
 |    <category name="org.apache.cloudstack.spring.module.context.ResourceApplicationContext"> | 
 |       <priority value="WARN"/> | 
 |    </category> | 
 |     | 
 |    <category name="net"> | 
 |      <priority value="INFO"/> | 
 |    </category> | 
 |  | 
 |    <category name="apiserver.com.cloud"> | 
 |      <priority value="DEBUG"/> | 
 |    </category> | 
 |  | 
 |    <logger name="apiserver.com.cloud" additivity="false"> | 
 |       <level value="DEBUG"/> | 
 |       <appender-ref ref="APISERVER"/> | 
 |    </logger> | 
 |  | 
 |     | 
 |    <logger name="com.cloud.bridge" additivity="false"> | 
 |       <level value="DEBUG"/> | 
 |       <appender-ref ref="AWSAPI"/> | 
 |    </logger> | 
 |     | 
 |    <logger name="com.cloud.stack" additivity="false"> | 
 |       <level value="DEBUG"/> | 
 |       <appender-ref ref="AWSAPI"/> | 
 |    </logger> | 
 |     | 
 |  | 
 |    <logger name="org.apache.axis2" additivity="false"> | 
 |       <level value="INFO"/> | 
 |       <appender-ref ref="AWSAPI"/> | 
 |    </logger> | 
 |  | 
 |    <!-- ============================== --> | 
 |    <!-- Add or remove these logger for SNMP, this logger is for SNMP alerts plugin --> | 
 |    <!-- ============================== --> | 
 |  | 
 |    <logger name="org.apache.cloudstack.alerts" additivity="false"> | 
 |       <level value="WARN"/> | 
 |       <appender-ref ref="SYSLOG"/> | 
 |       <appender-ref ref="CONSOLE"/> | 
 |       <appender-ref ref="FILE"/> | 
 |       <appender-ref ref="SNMP"/> | 
 |       <appender-ref ref="ALERTSYSLOG"/> | 
 |    </logger> | 
 |  | 
 |    <!-- ======================= --> | 
 |    <!-- Setup the Root category --> | 
 |    <!-- ======================= --> | 
 |  | 
 |    <root> | 
 |       <level value="INFO"/> | 
 |       <appender-ref ref="SYSLOG"/> | 
 |       <appender-ref ref="CONSOLE"/> | 
 |       <appender-ref ref="FILE"/> | 
 |    </root> | 
 |  | 
 | </log4j:configuration> |