123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--日志级别高低TRACE < DEBUG < INFO < WARN < ERROR < FATAL-->
- <configuration scan="true" scanPeriod="60 seconds" debug="false">
- <!--引用外部配置文件中的变量属性-->
- <!--<property scope="context" resource="application.properties" />
- <springProperty scope="context" name="log.dir" source="hgas.log.dir"/>
- <springProperty scope="context" name="log.appname" source="hgas.log.appname"/>-->
- <contextName>TriCP</contextName>
- <!-- 自定义内部变量属性-->
- <property name="log.dir" value="./trilog/log"/>
- <property name="log.appname" value="tri"/>
- <!--输出到控制台-->
- <appender name="consoleOutput" class="ch.qos.logback.core.ConsoleAppender">
- <!-- 如果要过滤掉ERROR级别以下的日志请启用该行
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>ERROR</level>
- </filter>
- -->
- <!--对日志格式进行编码-->
- <!--%d{HH: mm:ss.SSS}——日志输出时间-->
- <!--%thread——输出日志的进程名字-->
- <!--%-5level——日志级别,并且使用5个字符靠左对齐-->
- <!--%logger{36}——日志输出者的名字-->
- <!--%msg——日志消息-->
- <!--%n——平台的换行符-->
- <encoder>
- <!--<pattern>%d{HH: mm:ss.SSS} %contextName {%thread} %-5level %logger{36} - %msg%n</pattern>-->
- <pattern>%d{HH: mm:ss.SSS} %contextName %-5level %msg%n</pattern>
- </encoder>
- </appender>
- <!--输出到文件-->
- <appender name="fileInfoOutput" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则
- 如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天
- 的日志改名为今天的日期。即,<File> 的日志都是当天的。
- -->
- <File>${log.dir}/info.${log.appname}.log</File>
- <!--如果只是想要 Info 级别的日志,只是过滤 info 还是会输出 Warn 日志,因为 Warn 的级别高,
- 所以我们使用下面的策略,可以避免输出 Warn 的日志-->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>Info</level> <!--过滤Warn-->
- <onMatch>ACCEPT</onMatch> <!--匹配到就运行-->
- <onMismatch>DENY</onMismatch> <!--没有匹配到就拒绝-->
- </filter>
- <!--滚动策略,按照时间滚动 TimeBasedRollingPolicy-->
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
- <FileNamePattern>${log.dir}/info.${log.appname}.%d{yyyy-MM-dd}.log</FileNamePattern>
- <!--只保留最近180天的日志-->
- <maxHistory>180</maxHistory>
- <!--用来指定日志文件的上限大小,那么到了这个值,就会删除旧的日志-->
- <totalSizeCap>10GB</totalSizeCap>
- </rollingPolicy>
- <!--日志输出编码格式化-->
- <encoder>
- <charset>UTF-8</charset>
- <!--<pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>-->
- <pattern>%d %-5level %msg%n</pattern>
- </encoder>
- </appender>
- <appender name="fileWarnOutput" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${log.dir}/warn.${log.appname}.log</File>
- <!--过滤出Warn以及以上的级别(Warn、Error)
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>Warn</level>
- </filter>-->
- <!--再对Error进行过滤-->
- <filter class="ch.qos.logback.classic.filter.LevelFilter">
- <level>Warn</level> <!--过滤Error-->
- <onMatch>ACCEPT</onMatch> <!--匹配到就允许-->
- <onMismatch>DENY</onMismatch> <!--没有匹配到就拒绝-->
- </filter>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <FileNamePattern>${log.dir}/warn.${log.appname}.%d{yyyy-MM-dd}.log</FileNamePattern>
- <maxHistory>180</maxHistory>
- <totalSizeCap>1GB</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <charset>UTF-8</charset>
- <!--<pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>-->
- <pattern>%d %-5level %msg%n</pattern>
- </encoder>
- </appender>
- <appender name="fileErrorOutput" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${log.dir}/error.${log.appname}.log</File>
- <!--过滤出Error以及以上的级别-->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>Error</level>
- </filter>
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <FileNamePattern>${log.dir}/error.${log.appname}.%d{yyyy-MM-dd}.log</FileNamePattern>
- <maxHistory>180</maxHistory>
- <totalSizeCap>1GB</totalSizeCap>
- </rollingPolicy>
- <encoder>
- <charset>UTF-8</charset>
- <!--<pattern>%d [%thread] %-5level %logger{36} %line - %msg%n</pattern>-->
- <pattern>%d %-5level %msg%n</pattern>
- </encoder>
- </appender>
- <!--指定最基础的日志输出级别,低于Info级别的信息都不会输出-->
- <root level="info">
- <appender-ref ref="consoleOutput" />
- <appender-ref ref="fileInfoOutput" />
- <appender-ref ref="fileWarnOutput" />
- <appender-ref ref="fileErrorOutput" />
- </root>
- </configuration>
|