日志信息管理工具 Whisper

Apache
Java
跨平台
2014-10-10
叶秀兰

Whisper 是控制异常邮件变成垃圾邮件的一个工具。Whisper 作为一个过滤的 appender 来代替默认的 SMTP 邮件 appender。当消息的频率超过配置的阈值的时候,Whisper 就会开始压制。当启动压制,Whisper 就会发送一定时期的数据,让你知道哪些信息被压制,有多少信息被压制。当问题解决,你的错误信息频率开始下降,那么就会结束压制,一切恢复如常。所有的这些都基于一个日志信息基础。

Whisper 支持哪些日志记录框架?

Whisper 当前支持 Logback,不就将会支持 log4j 和 log4jv2。

如何获取 JAR?

Whisper 现已提供在 Maven Central:

<groupId>com.eclecticlogic</groupId>
<artifactId>whisper</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>

如何配置 Whisper?

把 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>


加载中

评论(0)

暂无评论

暂无资讯

暂无问答

使用graphite和grafana进行应用程序监控

# graphite+grafana 介绍 grafana,按照官方的说法是 `Beautiful metric & analytic dashboards`。grafana 负责数据的展示,可以配置各种不同的数据源,其中包括 graphite。 graphite 包含多...

2016/11/21 22:52
1K
1
whisper数据库

whisper数据库存储方式简介

2016/06/30 11:29
305
1
以太坊Whisper协议

在本教程中,我们将学习如何使用以太坊的Whisper协议创建简单的聊天CLI。尽管本教程中的所有操作都在你的控制台中进行,但是你应该能够重新使用我们在你自己的应用程序中提供的JS,并对如何发...

07/04 15:35
4
0
Graphite简介

本文档主要对Graphite的整体架构,Graphite各个模块的功能,以及Graphite如何与现有监控系统进行整合进行简单的介绍

2016/06/28 09:45
814
1
Graphite 安装

StatsD只是一个数据收集进程,如果要查看数据历史记录,就需要一个后端的数据存储系统,graphite是一个老牌的监控系统,以至于上一次更新都在2012-5-31,graphite由三部分组成:graphite-we...

2016/05/04 12:05
21
1
graphite

graphite 安装使用

2015/06/05 11:16
62
0
学习golang并做一个简单分布式存储项目

从14年中开始陆续一年,断断续续学习了下Golang,看了Go语言编程,Go语言程序设计2本书。 始终觉得应该做点项目锻炼下,因为正好看《从paxos到zookeeper》,就尝试写一些网络应用,分布式存储...

2015/11/19 11:34
1K
0
web3.js API官方文档中文版

#web3.js API 文档# 以太坊DApp开发可以选择使用web3.js library提供的web3对象。底层实现上,它是通过RPC 调用与本地节点通信。web3.js可以与任何暴露了RPC接口的以太坊节点连接。 web3.js中...

2018/04/26 09:05
350
0
Graphite 简介

一、 Graphite 项目简介 Graphite是一个企业级的监控工具,可以在廉价机硬件上运行。最初由Chris Davis在 Orbitz 工作时,作为一个辅助项目在2006年使用Python语言编写,最终成一个基本的监控...

2012/10/25 16:54
1K
1

没有更多内容

加载失败,请刷新页面

返回顶部
顶部