logback
原始配置 配置 appender, 控制文件的滚动方式,日志的输出格式。
<appender name="method-time-appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${saipan.logger.home}/method_profiling.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${saipan.logger.home}/method_profiling.log.%d{yyyy-MM-dd}-%i
</fileNamePattern>
<!-- keep 7 days' worth of history -->
<maxHistory>7</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1GB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="utf-8">
<pattern>%d{HH:mm:ss} - %msg%n</pattern>
</encoder>
</appender> 配置logger, 指向上面的appender
<logger name="method_profiling" additivity="false">
<level value="info"/>
<appender-ref ref="method-time-appender"/>
</logger>
修改为如下的配置 修改配置appender,
<appender name="method-time-appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${saipan.logger.home}/method_profiling.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>${saipan.logger.home}/method_profiling.log.%d{yyyy-MM-dd}-%i
</fileNamePattern>
<!-- keep 7 days' worth of history -->
<maxHistory>7</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1GB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder charset="utf-8">
<pattern>%d{HH:mm:ss} - %msg%n</pattern>
</encoder>
</appender> 其次配置一个异步的append, 并指向上面的appender
<appender name="ASYNC-METHOD-TIME-APPENDER" class="ch.qos.logback.classic.AsyncAppender">
<!--内部实现是一个有界ArrayBlockingQueue,queueSize是队列大小。该值会影响性能.默认值为256-->
<queueSize>512</queueSize>
<!--当队列的剩余容量小于这个阈值并且当前日志level TRACE, DEBUG or INFO,则丢弃这些日志。默认为queueSize大小的20%。-->
<discardingThreshold>0</discardingThreshold>
<!--neverBlock=true则写日志队列时候会调用阻塞队列的offer方法而不是put,如果队列满则直接返回,而不是阻塞,即日志被丢弃。-->
<neverBlock>true</neverBlock>
<!--实际负责写日志的appender,最多只能添加一个-->
<appender-ref ref="method-time-appender" />
</appender> 配置logger, 指向异步的appender.
<logger name="method_profiling" additivity="false">
<level value="info"/>
<appender-ref ref="ASYNC-METHOD-TIME-APPENDER"/>
</logger>
log4j

如果是使用org.apache.log4j.DailyRollingFileAppender 来配置,那你的配置可能是这样的的。

    <!-- 日志输出到文件,可以配置多久产生一个新的日志信息文件 -->
<appender name="dailyRollingAppender" class="org.apache.log4j.DailyRollingFileAppender">
<!-- 文件文件全路径名 -->
<param name="File" value="/data/applogs/own/dailyRollingAppender.log"/>
<param name="Append" value="true" />
<!-- 设置日志备份频率,默认:为每天一个日志文件 -->
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" /> <!--每分钟一个备份-->
<!--<param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm'.log'" />-->
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p][%d{HH:mm:ss SSS}][%c]-[%m]%n"/>
</layout>
</appender> 和logback一样,在logger和appender之间增加 AsyncAppender 配置。 <appender name="SYSTEM" class="com.alibaba.common.logging.spi.log4j.DailyRollingFileAppender">
<param name="file" value="${relationplatform.logging.root}/relationplatform-sys.log"/>
<param name="append" value="true"/>
<param name="encoding" value="GBK"/>
<param name="threshold" value="WARN"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%p]%d{yyyy-MM-dd HH:mm:ss,SSS} %C.%M(%L)| %m%n"/>
</layout>
</appender> <appender name="ASYNC-SYSTEM" class="org.apache.log4j.AsyncAppender">
<!--内部实现是一个列表,BufferSize是列表大小。该值会影响性能.默认值为128-->
<param name="BufferSize" value="512" />
<!--Blocking=false则写日志队列满时候不会阻塞调用线程。默认是true-->
<param name="Blocking" value="false" />
<param name="locationInfo" value="true"/>
<appender-ref ref="SYSTEM" />
</appender> <logger name="RELATION_PLATFORM_SERIOUS_LOG" additivity="false">
<level value="${relationplatform.loggingLevel}"/>
<appender-ref ref="ASYNC-SYSTEM"/>
</logger>

logback&log4j异步日志配置的更多相关文章

  1. log4xx/log4j异步日志配置示例

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration S ...

  2. log4j 异步日志问题分析

    1. 常用的DailyRollingFileAppender与RollingFileAppender是否同步? 1.1 代码分析 2. log4j 1.2.x提供了异步appender是什么?Asyn ...

  3. logback.xml解读----日志配置解读

    初次接触javaweb项目的日志是log4j文件,但是后来发现通过配置logback.xml文件实现日志输出非常好用.经过上午的学习,现总结如下: 直接上配置文件和注释: <?xml versi ...

  4. log4j2异步日志配置及官方文档的问题澄清

    配置及demo 方法一全部打开 加启动参数 -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextS ...

  5. Java log4j slf4j 日志配置笔记

    http://www.cnblogs.com/Scott007/p/3269018.html 日志的打印,在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender, ...

  6. log4j打印日志配置

    1.所需的jar包 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifa ...

  7. Spring Boot中实现logback多环境日志配置

    在Spring Boot中,可以在logback.xml中的springProfile标签中定义多个环境logback.xml: <springProfile name="produc ...

  8. logback条件日志配置

    logback支持条件日志配置,支持在测试环境和正式环境使用不同的参数启用不同的日志配置,从而避免手动修改日志配置文件.项目除了引入logback的包以外,还需要引入构件org.codehaus.ja ...

  9. (转)log4j(六)——log4j.properties简单配置样例说明

    一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 老规矩,先来个栗子,然后再聊聊感受 (1)使用配文件的方式,是不是感觉非常的清爽,如果不在程序中读取配置文件就更加的清 ...

随机推荐

  1. 关于vue-cli3中配置请求跨域的问题

    关于vue-cli3中配置请求跨域的问题 根据Vue CLI3官方文档, 需要在vue.config.js文件中配置devServer.proxy选项来解决跨域问题. 关于vue.config.js文 ...

  2. 图灵的文章“Computing machinery and intelligence”译文

    图灵奠基AI的力作“Computing  machinery and intelligence”全文译完,摘自http://blog.sciencenet.cn/blog-2322490-112266 ...

  3. dubbo(提供者、消费者)基于java的实现

    1.安装好jdk.zookeeper以后可以尝试开发代码进行dubbo的学习和练习. 首先创建Dubbo的Provider配置.创建一个maven project工程. RPC框架,不希望Consum ...

  4. 4-consul HTTP API及实践

    其他参考:https://www.cnblogs.com/duanxz/p/9660766.html 原文:https://www.douban.com/note/629645759/ 注意:使用AP ...

  5. Java生鲜电商平台-物流配送的设计与架构

    Java生鲜电商平台-物流配送的设计与架构 说明:由于Java开源生鲜电商平台是属于自建物流系统,也就是买家下的单,需要公司派物流团队进行派送.            业务需求中买家的下单时间控制在: ...

  6. 微信小程序自定义tabbar的实现

    微信小程序自定义tabbar的实现 目的:当采用微信的自定义tabbar组件的时候,切换的时候会出现闪屏的效果:当使用微信默认的tabbar的时候,限制了tabbar的数量以及灵活配置. 方案:自己动 ...

  7. vue学习指南:第五篇(详细) - vue的 computed、methods、watch 的区别?

    Computed 计算属性 1. 将函数代码块中返回的结果 赋值 给前面的方法名 2. computed 中的属性有缓存功能,只要data中的数据不发生改变,计算得到的新属       性就会被缓存下 ...

  8. tcpdump 介绍

    tcpdump 是一款强大的网络抓包工具,dump the traffice on anetwork,对网络上的数据包进行截获的包分析工具.熟练掌握 tcpdump 可以方便我们跟踪解决网络丢包,重传 ...

  9. Mongodb分片 学习小结

    前一篇 https://www.cnblogs.com/frx9527/p/mongodb.html 学会搭建复制集Replication之后,就可以学习分片Sharding了. 教程建议看官方文档: ...

  10. 全球唯一标识符 System.Guid.NewGuid().ToString()

    System.Guid.NewGuid().ToString(); //ToString() 为 null 或空字符串 (""),则使用"D". 结果:8209 ...