slf4j配置
<?xml version="1.0" encoding="UTF-8"?> <!-- configuration作为logback的根节点有以下属性 scan: 默认为true, 配置文件发生变化, 将会被重新加载 scanPeriod: 检测配置文件是否有修改的间隔时间,默认1分钟 debug: 默认为false, true时会打印logback内部日志信息 packagingData: 默认为false, true时, logback可以包含它输出的堆栈跟踪行的每一行的打包数据。打包数据由jar文件的名称和版本组成,而这个jar文件是由堆栈跟踪线的类产生的 --> <configuration debug="false"> <!--指定某开发环境下日志文件的存储路径--> <springProfile name="prod"> <property name="LOG_HOME" value="/www/wwwroot/yxxapi.fenxiangzl.com/log/"/> </springProfile> <springProfile name="dev"> <property name="LOG_HOME" value="s/tianhen/Desktop/yxx_applet_java/log/"/> </springProfile> <!--控制台 --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> </encoder> </appender> <!--只记录INFO级别的日志--> <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--追加 值为 true:表示日志框架将在现有日志文件的末尾追加新的日志消息, 为 false,则会在每次日志记录时都创建一个新的日志文件,覆盖以前的日志文件。 --> <append>true</append> <!--过滤器,只记录INFO级别的日志--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!--过滤级别--> <level>INFO</level> <!--匹配是的操作:接收(记录)--> <onMatch>ACCEPT</onMatch> <!--不匹配时的操作:拒接(记录)--> <onMismatch>DENY</onMismatch> </filter> <!-- 每日滚动策略 - 日志文件根据文件大小和时间进行滚动--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <fileNamePattern>${LOG_HOME}%d{yyyy-MM-dd}-info.log</fileNamePattern> <!--日志文件保留天数--> <maxHistory>30</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!--只记录WARN级别的日志--> <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--追加--> <append>true</append> <!--过滤器,只记录WARN级别的日志--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!--过滤级别--> <level>WARN</level> <!--匹配是的操作:接收(记录)--> <onMatch>ACCEPT</onMatch> <!--不匹配时的操作:拒接(记录)--> <onMismatch>DENY</onMismatch> </filter> <!-- 每日滚动策略 - 日志文件根据文件大小和时间进行滚动--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <fileNamePattern>${LOG_HOME}%d{yyyy-MM-dd}-warn.log</fileNamePattern> <!--日志文件保留天数--> <maxHistory>30</maxHistory> </rollingPolicy> <encoder charset="UTF-8"> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!--过滤器,只记录ERROR级别的日志--> <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--追加--> <append>true</append> <!--过滤器,只记录ERROR级别的日志--> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!--过滤级别--> <level>ERROR</level> <!--匹配是的操作:接收(记录)--> <onMatch>ACCEPT</onMatch> <!--不匹配时的操作:拒接(记录)--> <onMismatch>DENY</onMismatch> </filter> <!-- 每日滚动策略 - 日志文件根据文件大小和时间进行滚动--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--日志文件输出的文件名--> <fileNamePattern>${LOG_HOME}%d{yyyy-MM-dd}-error.log</fileNamePattern> <!--日志文件保留天数--> <maxHistory>30</maxHistory> </rollingPolicy> <!--指定日志消息编码方式--> <encoder charset="UTF-8"> <!--日志消息的输出格式: [%d{yyyy-MM-dd HH:mm:ss.SSS}]: 这部分是日期和时间戳的占位符,%d{yyyy-MM-dd HH:mm:ss.SSS} 表示以指定的日期时间格式(年-月-日 时:分:秒.毫秒)显示日志消息的时间戳。 %level: 这个占位符将显示日志事件的级别,例如 INFO、DEBUG、ERROR 等。 [%thread]: 这个占位符将显示产生日志消息的线程名称。 %file:%line: 这个占位符将显示产生日志消息的源文件名称和行号。 %msg: 这个占位符将显示实际的日志消息内容。 %n: 这是一个特殊的占位符,表示换行符,用于分隔不同的日志消息。 --> <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [%thread] %file:%line - %msg%n</pattern> <charset>UTF-8</charset> </encoder> <!--日志文件最大的大小--> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> <!--不同环境下输出的日志类别--> <springProfile name="dev"> <root level="INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="INFO"/> <appender-ref ref="WARN"/> <appender-ref ref="ERROR"/> </root> </springProfile> <springProfile name="prod"> <root level="INFO"> <appender-ref ref="INFO"/> <appender-ref ref="WARN"/> <appender-ref ref="ERROR"/> </root> </springProfile> </configuration>