Whisper 是控制异常邮件变成垃圾邮件的一个工具。Whisper 作为一个过滤的 appender 来代替默认的 SMTP 邮件 appender。当消息的频率超过配置的阈值的时候,Whisper 就会开始压制。当启动压制,Whisper 就会发送一定时期的数据,让你知道哪些信息被压制,有多少信息被压制。当问题解决,你的错误信息频率开始下降,那么就会结束压制,一切恢复如常。所有的这些都基于一个日志信息基础。
Whisper 当前支持 Logback,不就将会支持 log4j 和 log4jv2。
Whisper 现已提供在 Maven Central:
<groupId>com.eclecticlogic</groupId> <artifactId>whisper</artifactId> <packaging>jar</packaging> <version>1.0.0</version>
把 whisper-logback-sample.xml 放在 src/sample/resources。
配置 Whisper appender 之前要配置其他的两个 appenders:ERROR 错误级别日志的正则邮件 appender 和第二个发送 suppression Digests 的邮件 appender:
<appender name="errorEmail" class="ch.qos.logback.classic.net.SMTPAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <smtpHost>ADDRESS-OF-YOUR-SMTP-HOST</smtpHost> <to>EMAIL-DESTINATION</to> <from>SENDER-EMAIL</from> <subject>TESTING: %logger{20} - %m</subject> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%date %-5level %logger{35} - %message%n</pattern> </layout> </appender> <appender name="errorDigest" class="ch.qos.logback.classic.net.SMTPAppender"> <smtpHost>ADDRESS-OF-YOUR-SMTP-HOST</smtpHost> <to>EMAIL-DESTINATION</to> <from>SENDER-EMAIL</from> <subject>%X{whisper.digest.subject}</subject> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%date %-5level %logger{35} - %message%n</pattern> </layout> </appender>
注意 %X{whisper.digest.subject}
的使用。
配置 Whisper appender:
<appender name="whisper" class="com.eclecticlogic.whisper.logback.WhisperAppender"> <!-- Filter out non error logs --> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <onMatch>ACCEPT</onMatch> <onMismatch>DENY</onMismatch> </filter> <!-- This is the name of the logging category to use to send out error digests. This is associated with the errorDigest appender. --> <digestLoggerName>digest.appender.logger</digestLoggerName> <!-- suppressAfter specifies the criteria to enter suppression. The example below says that if 3 errors of the same kind are encountered within a 5 minute window, then suppression should kick in. --> <suppressAfter>3 in 5 minutes</suppressAfter> <!-- expireAfter specifies how much of silence the logger between messages before stopping suppression. --> <expireAfter>4 minutes</expireAfter> <!-- digestFrequency specifies how often error email digests should be sent containing statistics on messages suppressed --> <digestFrequency>20 minutes</digestFrequency> <!-- The pass-through appender for the normal case when suppression is not in-force. --> <appender-ref ref="errorEmail" /> </appender>
数字日志记录名字关联 digestAppender,默认的 appenders 列表包括 whisper appender:
<logger name="digest.appender.logger" level="error" additivity="false"> <appender-ref ref="errorDigest" /> </logger> <root level="debug"> <appender-ref ref="whisper" /> <appender-ref ref="fileAppender" /> </root>
以太坊系列之二十 以太坊中的基础应用whisper 以太坊系列之二十 以太坊中的基础应用whisper 1 whisper介绍 2 whisper rpc模块 3 whisper中的消息 4 消息的加密 5 过滤器 以太坊作为一个区块链生态系统,为区块链dapp应用提供了丰富的环境,whisper就是其中一个基础性设施.它相当于是以太坊中的bitmessage,希望以后dapp中可以用上whisp
在 YOG2 中,使用 yog-log 来处理日志功能,YOG2 的日志功能的特点在于可以准确的提供请求的 LogID ,方便以请求为单位对问题进行追查。 准确提供请求级 LogID 的难点在于如何让各种与请求无关的模块正确的获取当前调用请求的 LogID ,如果使用全局变量,由于 Node.js 的异步 I/O 模型,不同请求直接的 LogID 会出现被覆盖的情况。 yog-log 则通过 do
一、简介 管理黄页企业各模型对应的信息,可进行查看、修改、删除、审核等操作。 二、功能演示 信息管理,对应的各栏目为各模型下对应的分类,不明之处请看 分类管理
1. 前言 谁能保证开发的软件系统没有问题?恐怕任何一个有经验的程序员都不敢承诺吧! 在软件的设计、开发阶段,大家都是尽心尽力去做好各项工作,期望能有一个满意的效果。 但是一个投入生产环境、拥有众多用户的软件系统必然是一个复杂的系统工程,不经历现实的检验,没有人能准确地知道它到底会不会有问题。 所以,日志是重要的,不可或缺的。日志是软件系统出现故障时,分析问题的主要依据。就像飞机的黑匣子,平时感觉
返回当前whisper节点旳信息。 调用: web3.shh.getInfo([callback]) 参数: callback:Function - 可选的回调函数,其第一个参数为错误对象,第二个参数为结果 返回值: Object - 节点信息描述对象,具有以下属性: messages - Number: 当前浮动消息总数 maxMessageSize - Number: 当前消息大小上限,以字
在 Swarm 集群中管理配置数据 在动态的、大规模的分布式集群上,管理和分发配置文件也是很重要的工作。传统的配置文件分发方式(如配置文件放入镜像中,设置环境变量,volume 动态挂载等)都降低了镜像的通用性。 在 Docker 17.06 以上版本中,Docker 新增了 docker config 子命令来管理集群中的配置信息,以后你无需将配置文件放入镜像或挂载到容器中就可实现对服务的配置。
获取token API
问题 如何操作web.py自带的webserver的日志? 解法 我们可以用wsgilog来操作内置的webserver的日志,并做其为中间件加到应用中。 如下,写一个Log类继承wsgilog.WsgiLog,在_init_中把参数传给基类,如这个例子: import sys, logging from wsgilog import WsgiLog, LogIO import config c
2.1 账户信息管理 2.1.1用户账户注册(会员注册) 【场景介绍】 当有用户资金账户的场景时,比如用于充、转、提功能,需要调用本接口创建用户,商户用户标识是用户在商户平台的唯一标识,一个用户标识+身份证号只允许注册一次。 【调用流程】 【请求地址】 环境 接口服务URI 生产环境 /rest/v1.0/user/register 2.1.1.1请求参数 参数名称 参数含义 数据类型 必填 参数