`

logback 异步输出

 
阅读更多

 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="&quot;${devMode}&quot;.equals(&quot;true&quot;)">
      <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>

 

 

 

分享到:
评论

相关推荐

    springboot日志框架logback异步输出配置

    每次日志输出到文件都会进行一次磁盘IO,在多应用的时候这种效果会导致一定的线程运行延迟,所以可以采用异步的方式处理。 采用异步写日志的方式,通过不让主线程去写日志文件而减少磁盘IO,避免并发下造成线程阻塞...

    Spring Boot异步输出Logback日志方法详解

    【Spring Boot异步输出Logback日志方法详解】 在Spring Boot中,日志记录是一个重要的功能,用于跟踪应用程序的行为和调试问题。Logback是广泛使用的日志框架,由log4j的创始人Ceki Gülcü设计,提供了高效、灵活...

    LogBack的基本知识和优势

    LogBack 是一个强大的日志框架,它在日志管理领域接替了早期的log4j,提供了更高效、更灵活的解决方案。LogBack 的设计哲学是"同样的基础架构,但做得更好",它不是一场革命,而是log4j的自然进化,强调更快的速度、...

    采用slf4j+logback输出日志

    Logback支持更复杂的配置,如文件输出、日志滚动、异步日志记录、过滤器和自定义编码器等。例如,可以配置一个将日志写入文件的Appender: ```xml &lt;appender name="FILE" class="ch.qos.logback.core....

    Logback框架需要的3个jar包和logback.xml文件

    - **异步日志记录**:Logback支持异步日志记录,提高应用程序性能,尤其是在高并发场景下。 5. **与其他框架的集成**: - **Spring Boot**:Spring Boot默认集成了Logback,并提供了默认的logback-spring.xml配置...

    logback开发文档

    3. **配置文件(Configuration)**: Logback 使用 XML 文件进行配置,允许用户自定义日志行为,如选择输出目的地、过滤器、编码器等。 4. **SiftAppender**: 这是一个特殊的 Appender,可以根据 MDC(Mapped ...

    logback-slf4j日志配置文件-下载即可使用

    logback-slf4j是Java领域中一种常用的日志记录解决方案,它通过结合slf4j(Simple Logging Facade for Java)来提供了异步日志输出的功能,能够将日志输出到不同的文件中。下面是logback-slf4j日志配置文件的详细...

    logback jar包和logback.xml配置文件打包下载 小白新手学Java

    `logback-core-1.2.3.jar`是Logback的核心库,包含了日志处理的基本功能,如日志事件的创建、调度和输出。这个库负责事件的生命周期管理,包括事件的格式化、过滤、异步处理等低级操作。 `logback-classic-1.2.3....

    logback.xml按日期再按大小输出日志 配置

    该配置使日志先按日期进行归类,然后按大小输出异步日志

    Tomcat日志catalina.out过大解决方案--使用logback按日轮转.rar

    同时,`Logback`还支持其他高级特性,如异步日志处理、日志过滤、自定义日志格式等,能够提供更精细的日志管理和分析能力。 总之,通过引入`Logback`并进行合理配置,我们可以有效解决`Tomcat`日志`catalina.out`过...

    logback类库.rar

    最后,logback支持异步日志记录,通过`AsyncAppender`可以提高日志性能,避免日志输出对应用程序的性能影响。此外,还可以使用过滤器(Filter)来控制哪些日志事件会被记录,例如只记录特定级别的日志或根据日志消息...

    logback例子

    8. **异步日志**:Logback支持异步日志记录,通过AsyncAppender可以提高日志性能,避免阻塞应用程序。 9. **日志性能**:Logback相对于其他日志框架(如Log4j)有更高的性能,因为它在设计时就考虑了效率和资源利用...

    logback

    1. **安装和配置**:介绍如何在项目中添加logback依赖,以及如何创建和理解配置文件的结构,如定义appender(日志输出目的地)、filter(日志过滤规则)和layout(日志格式化)。 2. **日志级别和日志策略**:解释...

    logbackーslf4j-配置文件实例 难得

    Logback的配置主要通过`logback.xml`文件完成,这是一个XML格式的配置文件,用于定义日志级别、日志输出目的地、过滤器等。以下是一份基本的`logback.xml`配置示例: ```xml ...

    Logback配置文件根据 LEVEL级别将日志分类保存到不同文件.docx

    本文将详细介绍如何通过配置logback-spring.xml文件,实现日志按照级别分类存储,以及利用异步输出提升日志处理性能。 1. 日志输出到文件并分类 在Logback中,我们可以通过配置不同的`appender`来控制日志输出的...

    logback相关jar包

    它也支持异步日志记录,提高了日志处理的性能。 **SLF4J接口——slf4j-api-1.7.5.jar** `slf4j-api-1.7.5.jar`代表的是Simple Logging Facade for Java的API。SLF4J提供了一个统一的接口,使得开发者可以在运行时...

    logback.jar

    logback支持异步日志记录,通过使用LMAX Disruptor库,可以实现低延迟的日志写入,这对于高并发的应用场景非常有利。 **6. Appender和Layout** 在logback中,Appender负责将日志信息输出到特定的目标,如...

    logback 1.2.3.zip

    4. **Logback-Classic**: 提供了更高级的日志记录功能,如配置文件支持、日志等级、过滤器、异步日志记录等。它也提供了与Java.util.logging和log4j的兼容性,方便迁移旧项目。 5. **Logback-Access**: 与Servlet...

    Logback 使用手册

    除了logback.xml,Logback还支持groovy脚本格式的配置文件logback.groovy,以及针对Web应用的logback-access.xml配置文件,这些配置文件都支持更复杂的配置场景,比如日志的异步输出、日志的按条件输出、以及多环境...

    Logback中文手册

    1. **异步日志**:logback支持异步日志处理,提高性能,减少I/O阻塞。 2. **日志延迟初始化**:延迟初始化可以在应用启动时不立即加载日志配置,直到第一次使用日志时再加载,降低启动时间。 通过这份Logback中文...

Global site tag (gtag.js) - Google Analytics