个人简介

Echo Blog


江湖无名 安心练剑
  • Logback-01-intro
    Logback Logback 旨在作为流行的log4j项目的后续版本,从而恢复log4j离开的位置。 Logback旨在成为流行的log4j项目的后续版本。它由log4j的创始人CekiGülcü设计。 它建立在设计工业强度测井系统的十年经验之上。 由此产生的产品,即 back,比所有现有的测井系统更快并且占地面积更小,有时候是大幅度的。 同样重要的是,logback提供了其他日...
    2018-11-19 00:11:55 | Log
  • Logback 10-动态日志级别
    业务背景 有时候不同环境需要的日志级别不同,比如测试环境我们可能希望 DEBUG 级别,便于问题的定位。 那么问题来了,如何动态的修改日志级别? 思路 (1)手动修改:本地测试改为 debug,生产时改回来。 这个缺点比较明显,不够方便。 (2)不同的 profile 类似于 springboot 的 profile,指定不同环境的配置。 这个其实也有一定的要求,比如有些配置...
    2018-11-19 00:01:55 | Log
  • Logback 配置实战
    logback.xml <?xml version="1.0"?> <configuration> <!-- ch.qos.logback.core.ConsoleAppender 控制台输出 --> <appender name="console" class="ch.qos.logback.core.Conso...
    2018-11-19 00:01:55 | Log
  • TurboFilter
    TurboFilter TurboFilter实现日志级别等内容的动态修改 可能看到这个标题,读者会问:要修改日志的级别,不是直接修改log.xxx就好了吗?为何要搞那么复杂呢? 所以,先说一下场景,为什么要通过TurboFilter去动态的修改日志级别。我们在使用Java开发各种项目的时候必然的会引入很多框架,这些框架通过堆叠的方式完成所要提供的业务服务(一个服务请求在进入后会在这些...
    2018-11-19 00:01:55 | Log
  • Filter
    在logback-classic中 Logback-classic提供两种类型的过滤器,常规过滤器和turbo过滤器。 常规过滤器 常规的logback-classic过滤器扩展了Filter抽象类,它基本上由一个以ILoggingEvent实例作为参数的decision()方法组成。 过滤器按有序列表组织,并基于三元逻辑。每个过滤器的决定(ILoggingEvent事件)方法按顺序...
    2018-11-19 00:01:55 | Log
  • Layout
    什么是布局? 如果你想知道,布局与佛罗里达州的大型庄园无关。 布局是负责将传入事件转换为String的回溯组件。 Layout接口中的format()方法接受一个表示事件(任何类型)的对象并返回一个String。 Layout界面的概要如下所示。 public interface Layout<E> extends ContextAware, LifeCycle { ...
    2018-11-19 00:01:55 | Log
  • Encoder
    Encoder Encoder 是什么 编码器负责将事件转换为字节数组,并将该字节数组写入OutputStream。编码器在logback版本0.9.19中引入。在以前的版本中,大多数appender依靠布局将事件转换为字符串并使用java.io.Writer将其写出来。在以前版本的logback中,用户可以在FileAppender中嵌套PatternLayout。由于logback ...
    2018-11-19 00:01:55 | Log
  • Apache Calcite v1.36.0 整合 mysql + 动态的时间参数 实战笔记
    业务背景 如果我每一次调用的参数都是动态的。 select count(*) from users where create_time between #{startTime} and #{endTime} 接下来,让我们一步步的实现。 说明 实战记录一下 mysql 如何整合 apache calcite。 mysql 数据准备 建表语句 use test; drop ...
    2018-11-15 00:38:35 | Search