SpringBoot | 第二十五章:日志管理之自定义Appender

前面两章节我们介绍了一些日志框架的常见配置及使用实践。一般上,在开发过程中,像log4j2、logback日志框架都提供了很多Appender,基本上可以满足大部分的业务需求了。但在一些特殊需求或者需要将日志进行集中管理(集群部署时,日志是分拆到不同服务器上的,不可能去每一台服务器上去下载文件的,也不便于日志检索)时,就需要自定义Appender,将日志集中输出或者其他一些特殊需求。所以本章节就来简单介绍下关于log4j2和logback的自定义Appender知识。

一点知识

编写自定义Appender时,我们先来看看log4j2和logback自带了哪些Appender,了解下是否可以满足我们的个性化需求,避免重复制造轮子。

log4j2自带Appender

先看一张官网提供的Appender说明:

官方Appender

名称 描述
AsyncAppender   使用一个单独线程记录日志,实现异步处理日志事件。  
CassandraAppender   将日志信息输出到一个Apache的Cassandra数据库  
ConsoleAppender   将日志信息输出到控制台  
FailoverAppender   包含其他appenders,按顺序尝试,直至成功或结尾  
FileAppender   一个OutputStreamAppender,将日志输出到文件  
FlumeAppender   将日志输出到Apache Flume系统  
JDBCAppender   将日志通过JDBC输出到关系型数据库  
JMS Appender   将日志输出到JMS(Java Message Service)  
JPAAppender   将日志输出到JPA框架  
HttpAppender   通过HTTP输出日志  
KafkaAppender   将日志输出到Apache Kafka  
MemoryMappedFileAppender   将日志输出到一块文件关联的内存  
OutputStreamAppender   将日志输出到一个OutputStream  
RandomAccessFileAppender   性能比FileAppender高20%~200%的文件输出Appender  
RewriteAppender   允许对日志信息进行加工  
RollingFileAppender   按log文件最大长度限度生成新文件  
RollingRandomAccessFA   添加了缓存的RollingFileAppender  
RoutingAppender   将日志事件分类,按条件分配给子appender  
SMTPAppender   将日志输出到邮件  
SocketAppender   将日志输出到一个Socket  
SyslogAppender   是一个SocketAppender,将日志输出到远程系统日志  
ZeroMQ/JeroMQ Appender   使用JeroMQ库将日志输出到ZeroMQ终端  

基本上已经覆盖了百分之九十的业务场景了。相关的详细说明或者配置大家自行搜索或者查看官网说明。
官网地址:

logback自带Appender

和log4j2一样,自带的都差不多了。

名称 描述
ConsoleAppender   将日志输出到控制台  
FileAppender   将日志输出到文件  
RollingFileAppender   滚动文件生成,按条件生成不同文件,配合TriggeringPolicy使用  
SocketAppender   输出日志到远程实例中,明文传输  
SSLSocketAppender   输出日志到远程实例中,密文传输  
SMTPAppender   将日志输出到邮件  
DBAppender   日志事件插入数据库中,需要提前创建表  
SyslogAppender   是一个SocketAppender,将日志输出到远程系统日志  
SiftingAppender   可基于任何给定的实时属性分开(或者筛选)日志,如基于用户会话分开日志事件  
AmqpAppender   将日志输出到MQ服务中  

具体可查看:https://blog.csdn.net/tianyaleixiaowu/article/details/73327752 很详细!

或者查看官网:https://logback.qos.ch/manual/appenders.html

自定义Appender

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfyxp.html