<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="logPath" value="E:/data/logs"/> <!--<property name="logPath" value="/data/logs"/>--> <property name="appName" value="joe-zookeeper"/> <property name="maxHistory" value="30"/> <property name="maxFileSize" value="10MB"/> <!-- 控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--formatted output: %d means date, %thread means thread name, %-5level: level is displayed from the left with 5 characters width %msg: log message, %n is a newline character --> <pattern>%date{yyyy-MM-dd HH:mm:ss} %highlight(%-5level) %boldCyan([%thread]) %boldGreen(%logger{50}) - %msg%n </pattern> <charset>UTF-8</charset> </encoder> </appender> <!-- INFO log appender --> <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos. logback.core.rolling.TimeBasedRollingPolicy"> <!-- The storage location and file name of the file generated during rolling%d{yyyy-MM-dd}: log rolling by day %i: when the file size exceeds maxFileSize, follow i Perform file scrolling --> <FileNamePattern>${logPath}/${appName}/info.%d{yyyy-MM-dd}.log</FileNamePattern> <!--Number of days to keep log files--> <MaxHistory>>${maxHistory}</MaxHistory> /MaxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--formatted output: %d means date, %thread means thread name,% -5level: Level displays 5 characters width from the left %msg: log message, %n is a newline character --> <pattern> %date{yyyy-MM-dd HH:mm:ss} %boldBlue(%-5level)% boldCyan([%thread]) %boldGreen(%logger{50})- %msg%n </pattern> <charset>UTF-8</charset> </encoder> <!--Maximum log file size-- > <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>${maxFileSize}</MaxFileSize> </triggeringPolicy> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <!-- Only print INFO log--> <level>INFO</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY< /onMismatch> </filter> </appender> <!-- WARN log appender --> <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch .qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- The storage location and file name of the file generated during rolling%d{yyyy-MM-dd}: log rolling by day %i: when the file size exceeds maxFileSize When, follow i for file scrolling --> <FileNamePattern>${logPath}/${appName}/warn.%d{yyyy-MM-dd}.log</FileNamePattern> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <!--Number of days to keep log files--> <MaxHistory>>${maxHistory}</MaxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--formatted output: %d means date, %thread means Thread name, %-5level: Level is displayed from the left with 5 characters width %msg: Log message, %n is a newline character --> <pattern> %date{yyyy-MM-dd HH:mm:ss} %boldYellow(% -5level) %boldCyan([%thread]) %boldGreen(%logger{50})- %msg%n </pattern> <charset>UTF-8</charset> </encoder> <!--The largest log file The size of --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <MaxFileSize>${maxFileSize}</MaxFileSize> </triggeringPolicy> <!-- 只打印INFO日志 --> <level>WARN</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- ERROR日志 appender --> <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <! --> %i: when the file size exceeds maxFileSize, file rolling is performed according to i storage location and file name of the file generated during rolling %d{yyyy-MM-dd}: log rolling by day--The <fileNamePattern>${logPath}/${appName }/error.%d{yyyy-MM-dd}.log</fileNamePattern> <!-- The largest history of the log--> <maxHistory>${maxHistory}</maxHistory> </rollingPolicy> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <!--formatted output: %d means date, %thread means thread Name, %-5level: Level is displayed from the left with 5 characters width %msg: Log message, %n is a newline character --> <pattern> %date{yyyy-MM-dd HH:mm:ss} %boldRed(%- 5level) %boldCyan([%thread]) %boldGreen(%logger{50})- %msg%n </pattern> <charset>UTF-8</charset> </encoder> <filter class="ch.qos .logback.classic.filter.LevelFilter"> <!-- Only print error log--> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> </appender> <!-- 日志输出级别 --> <root level="ERROR"> <appender-ref ref="STDOUT"/> <appender-ref ref="INFO"/> <appender-ref ref="WARN"/> <appender-ref ref="ERROR"/> </root> </configuration>
logback-spring.xml log configuration file
Guess you like
Origin blog.csdn.net/qq_38428623/article/details/93186517
Recommended
Ranking