Log4j
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN" monitorInterval="1800">
<Properties>
<property name="logFileName">enigma系统日志</property>
<property name="basePath">/var/AppLogs/enigma/${logFileName}</property>
<property name="console_log_pattern">[%p][%d{yyyy-MM-dd HH:mm:ss}] %l %rms: %m%n</property>
<property name="log_pattern">[%p][%d{yyyy-MM-dd HH:mm:ss}] %l %rms: %m%n</property>
<property name="every_file_size">50MB</property>
<property name="output_log_level">DEBUG</property>
<property name="encoding">UTF-8</property>
<property name="console_print_level">DEBUG</property>
<property name="rolling_fileName">${basePath}/all/all.log</property>
<property name="rolling_filePattern">${basePath}/all/%d{yyyy-MM}/all-%d{yyyy-MM-dd}-%i.log.zip</property>
<property name="rolling_max">500</property>
<property name="rolling_timeInterval">1</property>
<property name="rolling_timeModulate">true</property>
<property name="debug_fileName">${basePath}/debug/debug.log</property>
<property name="debug_filePattern">${basePath}/debug/%d{yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.zip</property>
<property name="debug_max">100</property>
<property name="debug_timeInterval">1</property>
<property name="debug_timeModulate">true</property>
<property name="info_fileName">${basePath}/info/info.log</property>
<property name="info_filePattern">${basePath}/info/%d{yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.zip</property>
<property name="info_max">1000</property>
<property name="info_timeInterval">1</property>
<property name="info_timeModulate">true</property>
<property name="warn_fileName">${basePath}/warn/warn.log</property>
<property name="warn_filePattern">${basePath}/warn/%d{yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.zip</property>
<property name="warn_max">1000</property>
<property name="warn_timeInterval">1</property>
<property name="warn_timeModulate">true</property>
<property name="error_fileName">${basePath}/error/error.log</property>
<property name="error_filePattern">${basePath}/error/%d{yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.zip</property>
<property name="error_max">1000</property>
<property name="error_timeInterval">1</property>
<property name="error_timeModulate">true</property>
<property name="druid_sql_fileName">${basePath}/druid_sql/druid_sql.log</property>
<property name="druid_sql_filePattern">${basePath}/druid_sql/%d{yyyy-MM}/druid_sql-%d{yyyy-MM-dd}-%i.log.zip
</property>
<property name="druid_sql_max">1000</property>
<property name="druid_sql_timeInterval">1</property>
<property name="druid_sql_timeModulate">true</property>
</Properties>
<appenders>
<Console name="Console" target="SYSTEM_OUT">
<ThresholdFilter level="${console_print_level}" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout pattern="${console_log_pattern}"/>
</Console>
<RollingFile name="RollingFile" fileName="${rolling_fileName}" filePattern="${rolling_filePattern}">
<PatternLayout charset="${encoding}" pattern="${log_pattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="${rolling_timeInterval}" modulate="${warn_timeModulate}"/>
<SizeBasedTriggeringPolicy size="${every_file_size}"/>
</Policies>
<DefaultRolloverStrategy max="${rolling_max}"/>
</RollingFile>
<RollingFile name="DebugFile" fileName="${debug_fileName}" filePattern="${debug_filePattern}">
<PatternLayout charset="${encoding}" pattern="${log_pattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="${debug_timeInterval}" modulate="${debug_timeModulate}"/>
<SizeBasedTriggeringPolicy size="${every_file_size}"/>
</Policies>
<DefaultRolloverStrategy max="${debug_max}"/>
<Filters>
<ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
</RollingFile>
<RollingFile name="InfoFile" fileName="${info_fileName}" filePattern="${info_filePattern}">
<PatternLayout charset="${encoding}" pattern="${log_pattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="${info_timeInterval}" modulate="${info_timeModulate}"/>
<SizeBasedTriggeringPolicy size="${every_file_size}"/>
</Policies>
<DefaultRolloverStrategy max="${info_max}"/>
<Filters>
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
</RollingFile>
<RollingFile name="WarnFile" fileName="${warn_fileName}" filePattern="${warn_filePattern}">
<PatternLayout charset="${encoding}" pattern="${log_pattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="${warn_timeInterval}" modulate="${warn_timeModulate}"/>
<SizeBasedTriggeringPolicy size="${every_file_size}"/>
</Policies>
<DefaultRolloverStrategy max="${warn_max}"/>
<Filters>
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
</RollingFile>
<RollingFile name="ErrorFile" fileName="${error_fileName}" filePattern="${error_filePattern}">
<PatternLayout charset="${encoding}" pattern="${log_pattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="${error_timeInterval}" modulate="${error_timeModulate}"/>
<SizeBasedTriggeringPolicy size="${every_file_size}"/>
</Policies>
<DefaultRolloverStrategy max="${error_max}"/>
<Filters>
<ThresholdFilter level="FATAL" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
</RollingFile>
<RollingFile name="druidSqlRollingFile" fileName="${druid_sql_fileName}" filePattern="${druid_sql_filePattern}">
<PatternLayout charset="${encoding}" pattern="${log_pattern}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="${druid_sql_timeInterval}" modulate="${druid_sql_timeModulate}"/>
<SizeBasedTriggeringPolicy size="${every_file_size}"/>
</Policies>
<DefaultRolloverStrategy max="${druid_sql_max}"/>
</RollingFile>
</appenders>
<loggers>
<root level="${output_log_level}">
<appender-ref ref="RollingFile"/>
<appender-ref ref="DebugFile"/>
<appender-ref ref="InfoFile"/>
<appender-ref ref="WarnFile"/>
<appender-ref ref="ErrorFile"/>
<appender-ref ref="Console"/>
</root>
<logger level="WARN" additivity="false" name="druid.sql">
<appender-ref ref="druidSqlRollingFile"/>
</logger>
<logger level="WARN" additivity="false" name="druid.sql.Statement">
<appender-ref ref="druidSqlRollingFile"/>
<appender-ref ref="Console"/>
</logger>
<logger level="WARN" additivity="false" name="druid.sql.ResultSet">
<appender-ref ref="druidSqlRollingFile"/>
</logger>
<logger level="WARN" additivity="false" name="druid.sql.Connection">
<appender-ref ref="druidSqlRollingFile"/>
</logger>
<logger level="WARN" additivity="false" name="druid.sql.DataSource">
<appender-ref ref="druidSqlRollingFile"/>
</logger>
<logger level="WARN" additivity="false" name="org">
<appender-ref ref="Console"/>
</logger>
<logger level="WARN" additivity="false" name="springfox">
<appender-ref ref="Console"/>
</logger>
<logger level="WARN" additivity="false" name="java.sql">
<appender-ref ref="Console"/>
</logger>
<logger level="WARN" additivity="false" name="io.netty.util">
<appender-ref ref="Console"/>
</logger>
<logger level="WARN" additivity="false" name="com.ulisesbocchio.jasyptspringboot">
<appender-ref ref="Console"/>
</logger>
<logger level="WARN" additivity="false" name="net.sf.ehcache">
<appender-ref ref="Console"/>
</logger>
<logger level="WARN" additivity="false" name="com.baomidou.mybatisplus">
<appender-ref ref="Console"/>
</logger>
</loggers>
</configuration>
Logback
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds" debug="false">
<contextName>logback</contextName>
<property name="logFileName" value="Explorer系统日志"/>
<property name="log.path" value="C:/SystemLogs/aim/${logFileName}"/>
<property name="basePath" value="C:/SystemLogs/aim/${logFileName}"/>
<property name="encoding" value="UTF-8"/>
<property name="fileSize" value="100MB"/>
<property name="fileHistory" value="60"/>
<property name="log_pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(===>){faint} %clr([%-4.6L]){faint} %clr([%-10.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n ${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<charset>${encoding}</charset>
</encoder>
</appender>
<appender name="all_logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${basePath}/all.log</file>
<encoder>
<pattern>${log_pattern}</pattern>
<charset>${encoding}</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${basePath}/all_history/%d{yyyy-MM}/all-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${fileSize}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>${fileHistory}</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ALL</level>
</filter>
</appender>
<appender name="debug_logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${basePath}/debug.log</file>
<encoder>
<pattern>${log_pattern}</pattern>
<charset>${encoding}</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${basePath}/debug_history/%d{yyyy-MM}/debug-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${fileSize}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>${fileHistory}</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="info_logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${basePath}/info.log</file>
<encoder>
<pattern>${log_pattern}</pattern>
<charset>${encoding}</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${basePath}/info_history/%d{yyyy-MM}/info-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${fileSize}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>${fileHistory}</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="warn_logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${basePath}/warn.log</file>
<encoder>
<pattern>${log_pattern}</pattern>
<charset>${encoding}</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${basePath}/warn_history/%d{yyyy-MM}/warn-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${fileSize}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>${fileHistory}</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="error_logFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${basePath}/error.log</file>
<encoder>
<pattern>${log_pattern}</pattern>
<charset>${encoding}</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${basePath}/error_history/%d{yyyy-MM}/error-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>${fileSize}</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>${fileHistory}</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<logger name="org.springframework.web" level="info"/>
<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
<springProfile name="dev">
<logger name="cn.com.codetest" level="debug"/>
</springProfile>
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="all_logFile"/>
<appender-ref ref="debug_logFile"/>
<appender-ref ref="info_logFile"/>
<appender-ref ref="warn_logFile"/>
<appender-ref ref="error_logFile"/>
</root>
</configuration>