slf4j扩展工具包 eslf4j

码农软件 · 软件分类 · 日志工具(Logging) · 2019-09-20 12:42:26

软件介绍

eslf4j(expand slf4j)是基于slf4j的一个扩展工具包,主要用于解决线上日志的bug定位问题。

 对于大并发的网站,定位bug一直是个头疼的问题,为了定位问题而记录大量的debug或info日志,很可能会影响性能,而且大量的日志对于日志分析也很不友好,还会占用大量磁盘空间;所以很多人的选择是启用error级别的日志,但是在这种情况下,如果线上出现了bug,往往只有一条错误日志,这对于定位问题几乎没有任何帮助,因为导致这个error往往是由于上下文的一个或几个错误数据或操作导致的,而上下文的info或debug日志并没有输出。

eslf4j能够控制打印上下文日志,比如可以定义线上日志的级别为error以输出最少的日志,并且配置eslf4j使得一旦出现error,能同时打印出上下文的info或者debug信息。这样既能保证性能,也方便定义问题。

eslf4j配置:
    count=100
    buffersize=10m
    minthreshold=debug
    filter=com.jd.o2o.filter.Null1Filter
    filter=com.jd.o2o.filter.Null2Filter
    memorymanager=com.jd.o2o.memory.NullMemoryManager

  1. count为上下文的日志数量,必须配置(否则可能会造成内存泄露,这跟线程连接池和ThreadLocal的实现有关,就不详解了);比如这里配置为100,表示一旦打印一条日志,会同时打印出该条日志前的100条日志。

  2. buffersize为eslf4j缓存的日志所占用的空间,必须配置,当缓存达到配置的大小时就会使用配置的memorymanager来释放内存;这里配置的buffersize为10m,表示缓存最多会占用10m内存,另外支持单位b(比特),k(kb),g(gb)

  3. minthreshold为缓存的最低闸值,必须配置,支持all,trace,debug,info,warn,error,fatal和off;比如这里配置为debug,只有级别大于或等于debug的日志才会被缓存并打印出来。

  4. filter是日志过滤器,是一个扩展点,可以配置也可以不配置,当然也可以配置多个;filter需要实现com.jd.o2o.core.filter.Filter接口,而且需要一个无参构造器;filter会在日志被缓存前调用,可以自处理日志。

  5. memorymanager用于管理内存,也是一个扩展点,可以配置也可以不配置,memorymanager需要实现com.jd.o2o.core.memory.IMemoryManager接口,而且需要一个无参构造器,如果不配置会默认使用com.jd.o2o.core.memory.impl.DefaultMemoryManagerImpl来管理内存,memorymanager会在日志缓存达到buffersize时调用来释放内存。

eslf4j demo:
线上日志级别为error,eslf4j配置的count为100,minthreshold为debug;假设活动线程数为1000,error错误率为1/1000;当一个线程出现error时,会打印出该线程下出现该error的前100条debug级别或debug级别以上的日志;而其它999个线程日志都不会输出。

本文地址:https://codercto.com/soft/d/15007.html

第一本Docker书 修订版

第一本Docker书 修订版

詹姆斯·特恩布尔 (James Turnbull) / 李兆海、刘斌、巨震 / 人民邮电出版社 / 2016-4-1 / CNY 59.00

Docker是一个开源的应用容器引擎,开发者可以利用Docker打包自己的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 本书由Docker公司前服务与支持副总裁James Turnbull编写,是Docker开发指南。本书专注于Docker 1.9及以上版本,指导读者完成Docker的安装、部署、管理和扩展,带领读者经历从测试到生产的整个开发生......一起来看看 《第一本Docker书 修订版》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具