首页 > 其他分享 >logback笔记

logback笔记

时间:2022-10-30 10:04:41浏览次数:87  
标签:VariableLoggingEventVO Desensitiver logback awesome 笔记 eventVO com public


概述

配置错误日志发送到指定邮箱

<appender name="EMAIL" class="com.ppdai.logclient.logback.MailAppender">
<evaluator class="com.ppdai.logback.SMTPFrequencyEvaluator">
<maxCount>1000</maxCount>
<expiredTime>300</expiredTime>
</evaluator>
<cyclicBufferTracker class="ch.qos.logback.core.spi.CyclicBufferTracker">
<bufferSize>1</bufferSize>
</cyclicBufferTracker>
<smtpHost>smtp.awesome.com</smtpHost>
<smtpPort>25</smtpPort>
<username>[email protected]</username>
<password></password>
<to>[email protected]</to>
<from>[email protected]</from>
<subject>【cloud_iview报错邮件】%X{ip}: %logger{20} - %m 累积错误数:%X{error_count}
</subject>
<layout class="ch.qos.logback.classic.html.HTMLLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}%level%thread%logger{35}%message
</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>

SMTPAppender为logback里面提供的API,继续该API的MailAppender源码如下:

public class MailAppender extends SMTPAppender {
public MailAppender() {
}

protected void append(ILoggingEvent leo) {
VariableLoggingEventVO eventVO = VariableLoggingEventVO.build(leo);
this.filter(eventVO);
super.append(eventVO);
}

private void filter(VariableLoggingEventVO eventVO) {
Map<String, String> newMdc = new HashMap(eventVO.getMdc());
eventVO.setMdcPropertyMap(newMdc);
eventVO.setFormattedMessage(Desensitiver.desensitive(eventVO.getFormattedMessage()));
}
}
public class Desensitiver {
public Desensitiver() {
}

public static String desensitive(String source) {
return PhoneDesensitiver.filterPhone(IdCardDesensitiver.filterIdCard(source));
}
}


标签:VariableLoggingEventVO,Desensitiver,logback,awesome,笔记,eventVO,com,public
From: https://blog.51cto.com/u_15851118/5807194

相关文章

  • C++ Primer Plus学习笔记之复合类型(上)
    前言个人觉得学习编程最有效的方法是阅读专业的书籍,通过阅读专业书籍可以构建更加系统化的知识体系。一直以来都很想深入学习一下C++,将其作为自己的主力开发语言。现在为......
  • 【笔记07】Javascript - 基本概念 - (作用域)
    【笔记07】Javascript-基本概念-(作用域)functiontest(){}通常,我们把函数生成的空间叫做“作用域”,但这么说不精准。作用域属于函数,函数产生了作用域。一切为对象的东西,......
  • 2022.10.29论文学习笔记
    本周看了一篇论文,论文的题目为:TowardsBetterNon-TreeArgumentMining:Proposition-LevelBiaffifineParsingwithTask-SpecifificParameterization,即走向更好的非树......
  • 学习笔记——ServletConfig,ServletContext
    2022-10-29一、web中的两个接口:(1)ServletConfig:说明:每当有一个servlet对象时,就会有唯一一个servletConfig配置文件对象功能:能获得Servlet名称(该名称是web.xml......
  • 机器学习笔记 前言
     该笔记基于什么?基于python3玩转机器学习这个视频,链接:https://pan.baidu.com/s/1grK-uhV3OfO7CVRhpk3XRw提取码:1234  该笔记的主要内容与结构是什么?主要由视频......
  • UE4学习笔记14——【蓝图】简单解密游戏(相当于复习了,也有一点新东西)
    P42.简单点名系统P43.getallactor的使用顺序P44.制作简单解密游戏P42(在“ThirdPersonCharacter”的蓝图类,“控制物体自传”图表中编辑)(控制多个立方体自传,或者......
  • 引用参数学习笔记
    引用参数定义引用参数是由调用部位传入实参的地址(写在留言板上)的形参。以符号“&”开始的参数即为引用参数。如果一个形参是引用参数,调用部位将把实参的地址传递给子程......
  • C语言笔记
    Part 6   之前就已经出一篇运算符的笔记了,但是运算符这里的知识点很多,小编会不断为小萌新们补上!  之前已经出过一篇算数运算符、赋值预算符、关系运算符、自增......
  • 学习笔记——Servlet
    2022-10-29 Servlet1、 Servlet的作用:例如:查询数据(1)浏览器端点击某个查询功能,向服务器端发出请求;服务器端解析请求,创建Servlet对象,并调用特定方法;Servlet对象调用“D......
  • 程序员修炼之道:从小工到专家 阅读笔记4
    Bug是一个程序员必须要面对的东西,在处理bug的时候,有些事情就显得尤为重要。发现bug后你应该专注于修正问题而不是指责,bug是你的过错还是别人的过错,并没有关系,你应该考虑的......