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

<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="logback.xsd">
	<contextName>${current_openmeetings_context_name}</contextName>

	<jmxConfigurator contextName="${current_openmeetings_context_name}" />

	<appender name="FLOG2" class="ch.qos.logback.core.FileAppender">
		<File>screensharing.log</File>
		<Append>false</Append>
		<Encoding>UTF-8</Encoding>
		<BufferedIO>false</BufferedIO>
		<ImmediateFlush>true</ImmediateFlush>
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%5p %d{MM-dd HH:mm:ss.SSS } %L %c{10} [%t] - %m%n</pattern>
		</layout>
	</appender>
	<appender name="CONSOLE2" class="ch.qos.logback.core.ConsoleAppender">
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>%5p %d{MM-dd HH:mm:ss.SSS } %L %c{10} [%t] - %m%n</pattern>
		</layout>
	</appender>
	<logger name="org.apache.openmeetings" level="DEBUG"/>
	<logger name="org.red5.server.net.rtmp.codec.RTMPProtocolDecoder" level="OFF"/>
	<root level="INFO">
		<appender-ref ref="FLOG2" />
		<appender-ref ref="CONSOLE2" />
	</root>
</configuration>
