Spring日志配置
<?xml version="1.0" encoding="UTF-8"?>
<!--日志配置根结点-->
<configuration>
<!--设置上下文名称-->
<contextName>MulunSrb</contextName>
<!-- 日志的输出目录 -->
<property name="" value="/Users/mulun/Log/oss/"/>
<!--控制台日志格式:彩色日志-->
<!-- magenta:洋红 -->
<!-- boldMagenta:粗红-->
<!-- cyan:青色 -->
<!-- white:白色 -->
<property name="CONSOLE_LOG_PATTERN"
value="%yellow(%date{yyyy-MM-dd HH:mm:ss}) %highlight([%-5level]) %green(%logger) %msg%n"/>
<!--文件日志格式-->
<property name="FILE_LOG_PATTERN"
value="%date{yyyy-MM-dd HH:mm:ss} [%-5level] %thread %file:%line %logger %msg%n"/>
<!--编码-->
<property name="ENCODING"
value="UTF-8"/>
<!-- 控制台日志 -->
<!-- <appender>是<configuration>的子节点,是负责写日志的组件-->
<!-- <appender>有两个必要属性name和class:name指定appender名称,class指定appender的全限定名-->
<!-- <encoder>对日志进行格式化-->
<!-- <pattern>定义日志的具体输出格式-->
<!-- <charset>编码方式-->
<appender name="CONSOLE" class="">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>${ENCODING}</charset>
</encoder>
</appender>
<!-- 文件日志 -->
<!-- <file>表示日志文件的位置,如果上级目录不存在会自动创建,没有默认值。-->
<!-- <append>默认 true,日志被追加到文件结尾,如果是 false,服务重启后清空现存文件。-->
<appender name="FILE" class="">
<file>${}/</file>
<append>true</append>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>${ENCODING}</charset>
</encoder>
</appender>
<!-- 滚动日志-->
<!-- 问题:生产环境下,如果系统长时间运行,那么日志文件会变得越来越大,系统读取和写入日志的时间会越来越慢,严重的情况会耗尽系统内存,导致系统宕机。-->
<!-- 解决方案:可以设置滚动日志-->
<!-- RollingFileAppender是Appender的另一个实现,表示滚动记录文件,先将日志记录到指定文件,当符合某个条件时,将旧日志备份到其他文件-->
<!-- <rollingPolicy>是<appender>的子节点,用来定义滚动策略。-->
<!-- TimeBasedRollingPolicy:最常用的滚动策略,根据时间来制定滚动策略。-->
<!-- <fileNamePattern>:包含文件名及转换符, “%d”可以包含指定的时间格式,如:%d{yyyy-MM-dd}。如果直接使用 %d,默认格式是 yyyy-MM-dd。-->
<!-- <maxHistory>:可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每个月滚动,且<maxHistory>是6,则只保存最近6个月的文件,删除之前的旧文件。注意,删除旧文件是,那些为了归档而创建的目录也会被删除。-->
<appender name="ROLLING_FILE" class="">
<!-- 要区别于其他的appender中的文件名字 -->
<file>${}/</file>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>${ENCODING}</charset>
</encoder>
<!-- 设置滚动日志记录的滚动策略 -->
<rollingPolicy class="">
<!-- 日志归档路径以及格式 -->
<fileNamePattern>${}/info/log-rolling-%d{yyyy-MM-dd}.%</fileNamePattern>
<!--归档日志文件保留的最大数量-->
<maxHistory>15</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<!-- 日志记录器,如果配置了下面多环境日志,就不要开启这个了 -->
<!-- <logger>可以是<configuration>的子节点,用来设置某一个包或具体某一个类的日志打印级别、指定<appender>-->
<!-- name:用来指定受此logger约束的某一个包或者具体的某一个类-->
<!-- level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF。默认继承上级的级别-->
<!-- <logger>可以包含零个或多个<appender-ref>元素,标识这个appender将会添加到这个logger-->
<!-- <logger name="" level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</logger>-->
<!-- 开发环境和测试环境 -->
<springProfile name="dev,test">
<logger name="" level="DEBUG">
<appender-ref ref="CONSOLE"/>
</logger>
</springProfile>
<!-- 生产环境 -->
<springProfile name="prod">
<logger name="" level="ERROR">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ROLLING_FILE"/>
</logger>
</springProfile>
</configuration>