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

	<appender name="console" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern"
				   value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
		</layout>
	</appender>

	<appender name="file" class="org.apache.log4j.FileAppender">

		<param name="file" value="FILE.log"/>
		<param name="immediateFlush" value="true"/>
		<param name="threshold" value="debug"/>
		<param name="append" value="false"/>

		<layout class="org.apache.log4j.PatternLayout">
			<param name="conversionPattern" value="%m%n"/>
		</layout>
	</appender>

	<Appenders>
		<Console name="console" target="SYSTEM_OUT">
			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
		</Console>
			<File name="file" fileName="output.log" bufferedIO="false" advertiseURI="file:log.log" advertise="true">
			</File>
	</Appenders>


	<Loggers>
		<Root level="info">
			<AppenderRef ref="file" />
			<AppenderRef ref="console" />
		</Root>
		<Logger name="com.epam.dlab.automation" level="debug" additivity="false">
			<AppenderRef ref="file" />
			<AppenderRef ref="console" />
    	</Logger>
	</Loggers>

</Configuration>