logback支持异步记录日志,这样可加快程序的主流程处理速度,提高接口的qps。
logback异步记录日志的原理,也是使用一个缓冲队列,当缓冲数量到一定阀值时,才把日志写到文件里。
<?xml version="1.0" encoding="utf-8"?> <configuration scan="false"> <property name="outPattern" value="[%p] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t][%c]%C:%L - %m %n"/> <!-- 文件历史数 --> <property name="maxHistory" value="7"/> <!-- logback --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${outPattern}</pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${dynamic.log.path}/test.log</file> <!-- 按天来回滚,如果需要按小时来回滚,则设置为{yyyy-MM-dd_HH} --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${dynamic.log.path}/test%d{yyyy-MM-dd}.log.gz</fileNamePattern> <!-- 如果按天来回滚,则最大保存时间为maxHistory天,maxHistory天之前的都将被清理掉 --> <maxHistory>${maxHistory}</maxHistory> </rollingPolicy> <!-- 日志输出格式 --> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n</Pattern> </layout> </appender> <!-- 异步输出,异步的log片段必须在同步段后面,否则不起作用 --> <appender name="ASYNC_FILE" class="ch.qos.logback.classic.AsyncAppender"> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>${log.queueSize}</queueSize> <!-- 添加附加的appender,最多只能添加一个 --> <appender-ref ref="FILE"/> </appender> <appender name="logback_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${dynamic.log.path}/WareDetailController.log</file> <!-- 按天来回滚,如果需要按小时来回滚,则设置为{yyyy-MM-dd_HH} --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${dynamic.log.path}/logback%d{yyyy-MM-dd}.log.gz</fileNamePattern> <maxHistory>${maxHistory}</maxHistory> </rollingPolicy> <!-- 日志输出格式 --> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} -%msg%n</Pattern> </layout> </appender> <!-- 异步输出 --> <appender name="ASYNC_logback" class="ch.qos.logback.classic.AsyncAppender"> <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --> <discardingThreshold>0</discardingThreshold> <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --> <queueSize>${log.queueSize}</queueSize> <!-- 添加附加的appender --> <appender-ref ref="logback_FILE"/> </appender> <logger name="LOG_WareDetailController" level="${wm.log.level}"> <if condition=""${devMode}".equals("true")"> <then> <appender-ref ref="CONSOLE"/> </then> </if> <appender-ref ref="ASYNC_logback"/> </logger> <root level="${wm.log.level}"> <if condition="${devMode}.equals("true")"> <then> <appender-ref ref="CONSOLE"/> </then> </if> <appender-ref ref="ASYNC_FILE"/> </root> </configuration>
相关推荐
每次日志输出到文件都会进行一次磁盘IO,在多应用的时候这种效果会导致一定的线程运行延迟,所以可以采用异步的方式处理。 采用异步写日志的方式,通过不让主线程去写日志文件而减少磁盘IO,避免并发下造成线程阻塞...
【Spring Boot异步输出Logback日志方法详解】 在Spring Boot中,日志记录是一个重要的功能,用于跟踪应用程序的行为和调试问题。Logback是广泛使用的日志框架,由log4j的创始人Ceki Gülcü设计,提供了高效、灵活...
LogBack 是一个强大的日志框架,它在日志管理领域接替了早期的log4j,提供了更高效、更灵活的解决方案。LogBack 的设计哲学是"同样的基础架构,但做得更好",它不是一场革命,而是log4j的自然进化,强调更快的速度、...
Logback支持更复杂的配置,如文件输出、日志滚动、异步日志记录、过滤器和自定义编码器等。例如,可以配置一个将日志写入文件的Appender: ```xml <appender name="FILE" class="ch.qos.logback.core....
- **异步日志记录**:Logback支持异步日志记录,提高应用程序性能,尤其是在高并发场景下。 5. **与其他框架的集成**: - **Spring Boot**:Spring Boot默认集成了Logback,并提供了默认的logback-spring.xml配置...
3. **配置文件(Configuration)**: Logback 使用 XML 文件进行配置,允许用户自定义日志行为,如选择输出目的地、过滤器、编码器等。 4. **SiftAppender**: 这是一个特殊的 Appender,可以根据 MDC(Mapped ...
logback-slf4j是Java领域中一种常用的日志记录解决方案,它通过结合slf4j(Simple Logging Facade for Java)来提供了异步日志输出的功能,能够将日志输出到不同的文件中。下面是logback-slf4j日志配置文件的详细...
`logback-core-1.2.3.jar`是Logback的核心库,包含了日志处理的基本功能,如日志事件的创建、调度和输出。这个库负责事件的生命周期管理,包括事件的格式化、过滤、异步处理等低级操作。 `logback-classic-1.2.3....
该配置使日志先按日期进行归类,然后按大小输出异步日志
同时,`Logback`还支持其他高级特性,如异步日志处理、日志过滤、自定义日志格式等,能够提供更精细的日志管理和分析能力。 总之,通过引入`Logback`并进行合理配置,我们可以有效解决`Tomcat`日志`catalina.out`过...
最后,logback支持异步日志记录,通过`AsyncAppender`可以提高日志性能,避免日志输出对应用程序的性能影响。此外,还可以使用过滤器(Filter)来控制哪些日志事件会被记录,例如只记录特定级别的日志或根据日志消息...
8. **异步日志**:Logback支持异步日志记录,通过AsyncAppender可以提高日志性能,避免阻塞应用程序。 9. **日志性能**:Logback相对于其他日志框架(如Log4j)有更高的性能,因为它在设计时就考虑了效率和资源利用...
1. **安装和配置**:介绍如何在项目中添加logback依赖,以及如何创建和理解配置文件的结构,如定义appender(日志输出目的地)、filter(日志过滤规则)和layout(日志格式化)。 2. **日志级别和日志策略**:解释...
Logback的配置主要通过`logback.xml`文件完成,这是一个XML格式的配置文件,用于定义日志级别、日志输出目的地、过滤器等。以下是一份基本的`logback.xml`配置示例: ```xml ...
本文将详细介绍如何通过配置logback-spring.xml文件,实现日志按照级别分类存储,以及利用异步输出提升日志处理性能。 1. 日志输出到文件并分类 在Logback中,我们可以通过配置不同的`appender`来控制日志输出的...
它也支持异步日志记录,提高了日志处理的性能。 **SLF4J接口——slf4j-api-1.7.5.jar** `slf4j-api-1.7.5.jar`代表的是Simple Logging Facade for Java的API。SLF4J提供了一个统一的接口,使得开发者可以在运行时...
logback支持异步日志记录,通过使用LMAX Disruptor库,可以实现低延迟的日志写入,这对于高并发的应用场景非常有利。 **6. Appender和Layout** 在logback中,Appender负责将日志信息输出到特定的目标,如...
4. **Logback-Classic**: 提供了更高级的日志记录功能,如配置文件支持、日志等级、过滤器、异步日志记录等。它也提供了与Java.util.logging和log4j的兼容性,方便迁移旧项目。 5. **Logback-Access**: 与Servlet...
除了logback.xml,Logback还支持groovy脚本格式的配置文件logback.groovy,以及针对Web应用的logback-access.xml配置文件,这些配置文件都支持更复杂的配置场景,比如日志的异步输出、日志的按条件输出、以及多环境...
1. **异步日志**:logback支持异步日志处理,提高性能,减少I/O阻塞。 2. **日志延迟初始化**:延迟初始化可以在应用启动时不立即加载日志配置,直到第一次使用日志时再加载,降低启动时间。 通过这份Logback中文...