<?xml version="1.0" encoding="UTF-8"?>
<configuration scanPeriod="60">
	<springProperty scope="context" name="springProfiles" source="spring.profiles.active" defaultValue="" />
	<!-- 禁止logback输出状态信息 -->
	<statusListener
		class="ch.qos.logback.core.status.NopStatusListener" />

	<property name="LOG_HOME" value="./logs/${springProfiles}" />

	<!-- 控制台 appender -->
	<appender name="STDOUT"
		class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%d %-5level [%logger] - %msg%n</pattern>
		</encoder>
	</appender>

	<!-- 出错日志 appender -->
	<appender name="ERROR_LOG"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<File>${LOG_HOME}/wios-error.log</File>
		<Append>true</Append>
		<encoder>
			<pattern>%d %-5level [%logger] - %msg%n</pattern>
		</encoder>
		<rollingPolicy
			class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
			<fileNamePattern>${LOG_HOME}/wios-error.%i.log
			</fileNamePattern>
			<minIndex>1</minIndex>
			<maxIndex>5</maxIndex>
		</rollingPolicy>
		<triggeringPolicy
			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>10MB</MaxFileSize>
		</triggeringPolicy>
		<filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打印错误日志 -->
			<level>ERROR</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
	</appender>

	<!-- 访问日志 appender -->
	<appender name="INFO_LOG"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<File>${LOG_HOME}/wios.log</File>
		<Append>true</Append>
		<encoder>
			<pattern>%d %-5level [%logger] - %msg%n</pattern>
		</encoder>
		<rollingPolicy
			class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
			<fileNamePattern>${LOG_HOME}/wios.%i.log</fileNamePattern>
			<minIndex>1</minIndex>
			<maxIndex>5</maxIndex>
		</rollingPolicy>
		<triggeringPolicy
			class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
			<MaxFileSize>10MB</MaxFileSize>
		</triggeringPolicy>
	</appender>

	<logger name="org.springframework" level="WARN" />
	<logger name="org.directwebremoting" level="WARN" />
	<logger name="org.hibernate" level="WARN" />
	<logger name="org.hibernate.SQL" level="INFO" />
	<logger name="org.mybatis" level="WARN" />
	<!-- <logger name="com.starcharge" level="error" /> -->
	<logger name="java.sql.ResultSet" level="WARN" />
	<logger name="java.sql.PreparedStatement" level="WARN" />
	<logger name="org.quartz.core" level="WARN" />
	<logger name="net.sf.ehcache.distribution" level="WARN" />
	<logger
		name="net.sf.ehcache.distribution.RMISynchronousCacheReplicator"
		level="WARN" />
	<logger name="com.opensymphony" level="WARN" />
	<logger name="com.mchange" level="WARN" />
	<logger name="org.apache.commons" level="WARN" />
	<logger name="org.apache.velocity" level="WARN" />
	<logger name="com.ihidea.core" level="WARN" />
	<logger name="org.apache.kafka" level="WARN" />
	<logger name="io.lettuce.core" level="WARN" />
	<logger name="io.netty" level="INFO" />
	<logger name="org.apache.http" level="WARN" />
	<logger name="springfox.documentation" level="WARN" />
	<logger name="org.redisson.connection.DNSMonitor" level="WARN" />
	<!-- 开发环境 -->
	<springProfile name="dev">
		<root level="debug">
			<appender-ref ref="STDOUT" />
			<appender-ref ref="ERROR_LOG" />
			<appender-ref ref="INFO_LOG" />
		</root>
	</springProfile>

	<!-- 生产环境 -->
	<springProfile name="prod">
		<root level="info">
			<appender-ref ref="ERROR_LOG" />
			<appender-ref ref="INFO_LOG" />
		</root>
	</springProfile>

	<!-- 测试环境 -->
	<springProfile name="test">
		<root level="info">
			<appender-ref ref="ERROR_LOG" />
			<appender-ref ref="INFO_LOG" />
		</root>
	</springProfile>

	<!-- 阿里开发云环境 -->
	<springProfile name="clouddev">
		<root level="debug">
			<appender-ref ref="STDOUT" />
			<appender-ref ref="ERROR_LOG" />
			<appender-ref ref="INFO_LOG" />
		</root>
	</springProfile>

</configuration>