--- /dev/null
+ <configuration scan="true">
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{36} - %msg%n</pattern>
+ </encoder>
+ </appender>
+ <appender name="opendaylight.log" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>logs/opendaylight.log</file>
+
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <fileNamePattern>logs/opendaylight.%d.log.zip</fileNamePattern>
+ <maxHistory>1</maxHistory>
+ </rollingPolicy>
+
+ <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+ <maxFileSize>10MB</maxFileSize>
+ </triggeringPolicy>
+
+ <encoder>
+ <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} [%thread] %-5level %logger{35} - %msg%n</pattern>
+ </encoder>
+ </appender>
+ <appender name="audit-file" class="ch.qos.logback.core.FileAppender">
+ <file>logs/audit.log</file>
+ <append>true</append>
+ <encoder>
+ <pattern>%date{"yyyy-MM-dd HH:mm:ss.SSS z"} %msg %n</pattern>
+ </encoder>
+ </appender>
+ <root level="error">
+ <appender-ref ref="STDOUT" />
+ <appender-ref ref="opendaylight.log" />
+ </root>
+
+ <!-- Base log level -->
+ <logger name="org.opendaylight" level="INFO"/>
+
+
+ <!-- Controller log level -->
+ <logger name="org.opendaylight.controller" level="INFO"/>
+
+ <!-- OSGi logging bridge -->
+ <logger name="org.opendaylight.controller.logging.bridge" level="WARN"/>
+ <logger name="org.opendaylight.controller.logging.bridge.internal" level="WARN"/>
+
+ <!-- Netty -->
+ <logger name="io.netty" level="WARN"/>
+
+ <!-- Openflow Protocol Plugin -->
+ <logger name="org.opendaylight.controller.protocol_plugin.openflow" level="INFO"/>
+ <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.DiscoveryService" level="INFO"/>
+ <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.InventoryService" level="INFO"/>
+ <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.InventoryServiceShim" level="INFO"/>
+ <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.TopologyServices" level="INFO"/>
+ <logger name="org.opendaylight.controller.protocol_plugin.openflow.internal.TopologyServiceShim" level="INFO"/>
+ <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.Controller" level="INFO"/>
+ <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.SwitchHandler" level="INFO"/>
+ <logger name="org.opendaylight.controller.protocol_plugin.openflow.core.internal.SwitchIOSecureService" level="INFO"/>
+ <!-- SAL -->
+ <logger name="org.opendaylight.controller.sal" level="INFO"/>
+ <logger name="org.opendaylight.controller.sal.implementation" level="INFO"/>
+ <logger name="org.opendaylight.controller.sal.implementation.internal.Inventory" level="INFO"/>
+ <logger name="org.opendaylight.controller.sal.implementation.internal.Topology" level="INFO"/>
+ <!-- remoterpc router and remoterpc routing table -->
+ <logger name="org.opendaylight.controller.sal.connector.remoterpc" level="INFO" />
+ <!-- Functional Modules -->
+ <logger name="org.opendaylight.controller.arphandler" level="INFO"/>
+ <logger name="org.opendaylight.controller.hosttracker" level="INFO"/>
+ <logger name="org.opendaylight.controller.routing" level="INFO"/>
+ <logger name="org.opendaylight.controller.forwardingrulesmanager" level="INFO"/>
+ <logger name="org.opendaylight.controller.forwarding.ipswitch" level="INFO"/>
+ <logger name="org.opendaylight.controller.switchmanager" level="INFO"/>
+ <logger name="org.opendaylight.controller.topologymanager" level="INFO"/>
+ <logger name="org.opendaylight.controller.usermanager" level="INFO"/>
+ <!-- Web modules -->
+ <logger name="org.opendaylight.controller.web" level="INFO"/>
+
+ <!--
+ Unsynchronized controller startup causes models to crop up in random
+ order, which results in temporary inability to fully resolve a model,
+ which is usually resolved. Do not flood console, but keep the messages,
+ as they may be indicating and error.
+ -->
+ <logger name="org.opendaylight.yangtools.yang.parser.util.ModuleDependencySort" level="INFO" additivity="false">
+ <appender-ref ref="opendaylight.log"/>
+ </logger>
+
+ <!-- To debug MD-SAL schema loading issues, uncomment this -->
+ <!--logger name="org.opendaylight.yangtools.yang.parser.impl.util.URLSchemaContextResolver" level="DEBUG"/>
+ <logger name="org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl" level="TRACE"/-->
+
+ <!-- additivity=false ensures analytics data only goes to the analytics log -->
+ <logger name="audit" level="INFO" additivity="false">
+ <appender-ref ref="audit-file"/>
+ </logger>
+</configuration>