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. linq,sqlmethods,like

    LINQ to SQL will translate .NET methods in this manner: text.StartsWith(...) = LIKE ...% text.Contai ...

  2. 【机器学习笔记】来吧!解析k-NN

    序: 监督型学习与无监督学习,其最主要区别在于:已知的数据里面有没有标签(作为区别数据的内容). 监督学习大概是这个套路: 1.给定很多很多数据(假设2000个图片),并且给每个数据加上标签(与图片一 ...

  3. Dev控件使用CheckedListBoxControl获取items.count为0 的解决方法

    CheckedListBoxControl,我使用DataSource属性,给其绑定了一个List对象.界面显示都挺正常的,当若干个项的复选框被选中的后,它的checkedListBoxControl ...

  4. 夜神模拟器怎么连接adb

    夜神模拟器连接不了adb的原因主要是adb的版本与夜神模拟器adb版本不一致造成的,具体的解决办法请看下面的操作步骤. 工具/原料   电脑 安装了夜神模拟器 方法/步骤   1 使用快捷键win + ...

  5. 妹纸对网易严选的Bra是什么评价?

    声明:这是一篇超级严肃的技术文章,请本着学习交流的态度阅读,谢谢! 一.网易商品评论爬取 1.评论分析 进入到网易严选官网,搜索“文胸”后,先随便点进一个商品. 在商品页面,打开 Chrome 的控制 ...

  6. English--美式发音

    English|美式发音 本文,总结了自己在学习美音的一些感悟,希望大家学习愉快!enjoy~ 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩 ...

  7. python3类和实例

    面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可 ...

  8. Qt发送邮件

    首先下载支持库 https://download.csdn.net/download/zhangxuechao_/10598108 #ifndef MAIL_H #define MAIL_H #inc ...

  9. 对于不返回任何键列信息的 SelectCommand,不支持 DeleteCommand 的动态 SQL 生成

    VS新增操作数据库出现如下报错. 原因是数据库表未添加主键 MySQL: CREATE TABLE Customer (SID integer, Last_Name ), First_Name ), ...

  10. 白话SCRUM之五:四种会议

    在SCRUM方法中定义了4种会议活动: Sprint planning Daily meeting Sprint review Sprint retrospective 除去开发活动外这4种会议构成了 ...