<?xml version="1.0" encoding="UTF-8" ?> <configuration debug="true" scan="true" scanPeriod="30 seconds"> <springProperty scope="context" name="spring.profiles.active" source="spring.profiles.active"/> <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread] %-5level%logger{35} [%X{x-jjk-rqid:-notFound}] [%X{jjkUserId:-null}] - %msg%n </pattern> </layout> </appender> <if condition='property("spring.profiles.active").equals("pro")'> <then> <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>DENY</onMatch> <onMismatch>ACCEPT</onMismatch> </filter> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread] %-5level%logger{35} [%X{x-jjk-rqid:-notFound}] [%X{jjkUserId:-null}] - %msg%n </pattern> </encoder> <!--滚动策略ch.qos.logback.core.rolling.TimeBasedRollingPolicy ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>./logs/info.%d-%i.log</fileNamePattern> <!--<fileNamePattern>C:\log\tomcat\pacs\info.%d.log</fileNamePattern>--> <maxFileSize>1MB</maxFileSize> <maxHistory>10</maxHistory> <totalSizeCap>3GB</totalSizeCap> </rollingPolicy> </appender> <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread] %-5level%logger{35} [%X{x-jjk-rqid:-notFound}] [%X{jjkUserId:-null}] - %msg%n </pattern> </encoder> <!--滚动策略--> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>./logs/error.%d-%i.log</fileNamePattern> <maxFileSize>1MB</maxFileSize> <maxHistory>10</maxHistory> <totalSizeCap>3GB</totalSizeCap> </rollingPolicy> </appender> </then> </if> <if condition='property("spring.profiles.active").equals("pro")'> <then> <root level="info"> <appender-ref ref="consoleLog" /> <appender-ref ref="fileInfoLog" /> <appender-ref ref="fileErrorLog" /> </root> </then> </if> <if condition='property("spring.profiles.active").equals("dev")'> <then> <root level="debug"> <appender-ref ref="consoleLog" /> </root> </then> </if> </configuration>
这里面滚动策略用ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy
日志输出必须有%d %i
相关推荐
这个配置中,`RollingFileAppender`定义了日志写入到`logs/catalina.log`文件,并使用`TimeBasedRollingPolicy`按日期进行滚动,每天生成一个新的日志文件,最多保留30天的历史日志。`encoder`部分则设置了日志的...
因此,本文将详细介绍如何通过Cronolog工具实现对catalina.out日志文件的自动按日期切分。 #### Cronolog工具简介 Cronolog是一款功能强大的日志切割工具,支持按日期、时间等模式对日志文件进行切割,广泛应用于...
下面我们将详细介绍如何使用cronolog工具在Spring Boot中实现按日切分`nohup.out`日志文件的方法。 首先,我们需要安装cronolog工具。cronolog是一个用于日志轮转的程序,它可以按照指定的时间格式(如日期)将输出...
- **日志切分**:按照时间(如一天)或大小(如文件大小达到一定限制)来分割日志文件,保持日志文件的可管理性。 2. **日志程序设计** - **日志框架**:如Java的Log4j、Logback,Python的logging等,提供灵活的...
4. **日志轮换**:为了防止单个日志文件过大,日志系统通常会进行日志轮换,例如按日期切分或达到一定大小后创建新的日志文件。 5. **性能优化**:高效日志系统会避免在高并发环境下对性能造成太大影响。例如,通过...