Solon2 自定义 slf4j 日志添加器
本案需要引入已适配的 slf4j 日志框架(solon.logging.simple 或 logback-solon-plugin 或 log4j-solon-plugin)。
1、自定义添加器入门
- 实现自定义添加器
实现一个简单的日志添加器,并把将日志以json格式打印出来:
import org.noear.solon.logging.event.AppenderBase;
//添加器实现类
public class JsonAppender extends AppenderBase {
@Override
public void append(LogEvent logEvent) {
System.out.println("[Json] " + ONode.stringfiy(logEvent));
}
}
- 增加配置
增加一个自定义的添加器(名字:json;等级:INFO;类名:demo.log.JsonAppender )
solon.logging.appender:
json:
level: INFO
class: demo.log.JsonAppender
2、高阶自定义添加器,将日志流转批并持久化
- 实现用于持久化的添加器
框架提供了高性能的流转批的添加器 “PersistentAppenderBase”,扩展一下实现执久化处理即可:
//持久化添加器(实现了流转批的效果)//提供高性能支持
public class PersistentAppender extends PersistentAppenderBase
LogService logService;
public PersistentAppender(){
//从容器里,手动获取日志服务
Solon.context().getBeanAsync(LogService.class, bean->{
logService = bean;
});
}
@Override
public void onEvents(List<LogEvent> list) {
//批量插到数据库去(或者批量提交到远程接口)
if(logService != null){
logService.insertList(list);
}
}
}
- 添加配置
solon.logging.appender:
persistent:
level: TRACE
class: demo2010.dso.PersistentAppender
- 具体代码,参考这个示例:
https://gitee.com/noear/solon-examples/tree/main/2.Solon_Advanced/demo2010-logging_batch
Solon2 自定义 slf4j 日志添加器的更多相关文章
- Dubbo自定义日志拦截器
前言 上一篇文章 Spring aop+自定义注解统一记录用户行为日志 记录了 web层中通过自定义注解配合Spring aop自动记录用户行为日志的过程.那么按照分布式架构中Dubbo服务层的调用过 ...
- 自定义日志阅读器——包括了一个load取Tomcat日志的分析器
最近在写往公司产品里添加Tomcat适配器,以支持Tomcat.有一些功能需要摘取到Tomcat的部分日志.没有合适的工具,也不想去网上找了,就自己写了一个. 简单的画了一下设计方案: 下面直接上代码 ...
- org.slf4j:slf4j-api:添加日志管理
org.slf4j:slf4j-api:添加日志管理 转 https://blog.csdn.net/wolfking0608/article/details/77855624 一个好的程序, 完 ...
- .net core Blazor+自定义日志提供器实现实时日志查看器
场景 我们经常远程连接服务器去查看日志,比较麻烦,如果直接访问项目的某个页面就能实时查看日志就比较奈斯了,花了1天研究了下.net core 日志的原理,结合blazor实现了基本效果. 实现原理 自 ...
- (Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译
Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目 ...
- Log4j扩展使用--日志格式化器Layout
Layout:格式化输出日志信息 OK,前面我已经知道了.Appender必须使用一个与之相关联的Layout,这样才能知道怎样格式化输出日志信息. 日志格式化器Layout负责格式化日志信息,方法l ...
- spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,guava限流,定时任务案例, 发邮件
本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口 ...
- 【SpringBoot 基础系列】实现一个自定义配置加载器(应用篇)
[SpringBoot 基础系列]实现一个自定义配置加载器(应用篇) Spring 中提供了@Value注解,用来绑定配置,可以实现从配置文件中,读取对应的配置并赋值给成员变量:某些时候,我们的配置可 ...
- SLF4J 日志门面
目录 01.简单介绍 02.日志级别 03.入门案例 03.动态打印 04.异常打印 05.日志集成 06.集成 logback 07.集成 slf4j-nop 08.集成 log4j 09.集成 j ...
- Moon转告给你一个比Log4net更好日志框架--TracerX Logger 及其对应的日志查看器
一.介绍 TracerX logger是一个易于上手,且拥有众多高级特性的.NET日志框架. 它能够发送输出结果到多目的地(循环文件.事件日志等....).它也能生成文本和二进制文件.它拥有一个强大的 ...
随机推荐
- Flink Heartbeat of TaskManager和Heartbeat of ResourceManager timed out问题
最近上了个Flink任务,运行一段时间后就自动停止了,很是郁闷,查看最后一个chekpoint时间点,翻看时间日志 2019-12-13 07:25:24.566 flink [flink-akka. ...
- python菜鸟学习: 2.列表操作
# -*- coding: utf-8 -*-# 列表操作names = ["LiSi", "ZhangSan", "WangWu"]pri ...
- pycharm 安装步骤
1.双击安装包 2.点击next 3.选择安装目录后点击next进入下一步 4.根据你电脑的实际情况选择安装32位还是64位 5.勾选 .py 后即可点击next进入下一步 6.默认,直接next 7 ...
- Write down for Segments, Extents, and Blocks
Segments, Extents, and Blocks(段.区.块) • Segments exist in a tablespace. • Segments are collections of ...
- 元素定位xpath路径中添加参数的方法
在某次自动化测试中,需要定位下拉列表(非select列表)中不同的元素,我想到了利用参入参数的方式来实现,经过多次尝试,得到如下方法,与大家分享 例如在通过text定位某个元素时,self.find_ ...
- docker-compose实践(携程apollo项目)
docker-compose使用开源镜像启动容器 以携程apollo项目为例,使用docker-compose部署单节点模式 创建apollo文件夹,vim一个新的docker-compose.yam ...
- OPENSUSE网速慢
无线网卡是Broadcom 4313,刚安装完opensuse,网速只有60Kb左右. 添加packman私有驱动后,网速才正常起来.
- Control M 复习笔记
记录一些复习过程想通的知识点 1.我们教案中看到的图基本都是复平面,从来没有看到过所谓s域或z域,不同的稳定区域只是因为从复平面到函数中存在不同的映射过程(s函数和z函数). s函数是纯粹的频域,也就 ...
- linux 离线安装jdk
系统版本:centos7.8 | jdk版本:1.8 jdk版本:jdk-8u5-linux-x64.rpm 点击下载 提取码: ud1r 检查系统是否已经有JDK,输入如下命令查看是否系统中是否已安 ...
- Mysql压缩版安装
1.官网去下载压缩版本(https://dev.mysql.com/downloads/) 这里下载Community版(因为免费<-_-> 它功能和Enterprise版功能差不多) ...