log4j2

在今天的帖子中,我将向您展示如何将日志语句过滤为警告电子邮件。 这是出于监视我正在处理的一个应用程序的几个关键点的需要。 您可以使用一些工具来执行应用程序监视。 我没有详细介绍这些工具,但有时让应用程序发送警告电子邮件会更容易。

我主要将log4j用于记录需求。 不幸的是,由于Java生态系统中有许多日志记录框架,因此本文仅涵盖其中的一部分。 将来我可能会为其他人做些事情,但是我想强调一下AntónioGonçalves关于记录API标准化的旧文章:我需要您作为Logging API Spec Lead! 。 这里介绍的示例适用于log4j ,但是github项目还包含一个log4j2示例。

用例

为了提供更多细节,我想在应用程序生成错误时得到通知,但也忽略应用程序本身已经处理的错误。 对于一个更具体的示例,我遇到一种情况,其中数据库插入会生成约束违例异常,但是此错误由应用程序专门处理。 即使这样,JDBC驱动程序也会记录该异常。 对于这种情况,我不希望收到通知。

设置SMTPAppender

无论如何,查看log4j ,您可以创建一个将所有日志发送到电子邮件的附加程序,只需选中SMTPAppender即可。 看起来像这样:

log4j-SMTPAppender

<appender name="SMTP" class="org.apache.log4j.net.SMTPAppender"><errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler"/><param name="Threshold" value="ERROR"/><param name="To" value="someone@somemail.com"/><param name="From" value="someonelse@somemail.com"/><param name="Subject" value="Log Errors"/><param name="SMTPHost" value="smtp.somemail.com"/><param name="SMTPUsername" value="username"/><param name="SMTPPassword" value="password"/><param name="BufferSize" value="1"/><param name="SMTPDebug" value="true"/><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}:%L] %m%n"/></layout>
</appender>

筛选

我们的过滤需求在标准log4j库中不可用。 您需要使用log4j-extras ,它为您提供了支持过滤复杂表达式的ExpressionFilter 。 我们还使用常规log4j库中的StringMatchFilter 。

现在,我们可以向SMTPAppender添加一个triggeringPolicy

log4j-triggeringPolicy

<triggeringPolicy class="org.apache.log4j.rolling.FilterBasedTriggeringPolicy"><filter class="org.apache.log4j.varia.StringMatchFilter"><param name="StringToMatch" value="ERROR01"/><param name="AcceptOnMatch" value="false"/></filter><filter class="org.apache.log4j.filter.ExpressionFilter"><param name="expression"value="CLASS LIKE .*Log4jExpressionFilter.*"/><param name="acceptOnMatch" value="false"/></filter><filter class="org.apache.log4j.filter.LevelRangeFilter"><param name="levelMin" value="ERROR"/><param name="levelMax" value="FATAL"/></filter>
</triggeringPolicy>

此配置将过滤日志以电子邮件只有ERRORFATAL阈值中的类不登录与Log4jExpressionFilter在它的名字,并没有ERROR01的日志信息。

看一下LoggingEventFieldResolver ,看看可以与ExpressionFilter一起使用的其他表达式。 您可以使用EXCEPTION,METHOD和其他一些非常有用的工具。

测验

如果您依赖真实的服务器,则测试SMTPAppender并不容易。 幸运的是,您可以使用模拟javamail ,甚至不必担心会污染SMTP服务器。 这也包含在github项目中。

资源资源

您可以从我的github存储库中为log4j和log4j2克隆完整的工作副本。

Log4j邮件过滤器

由于我将来可能会修改代码,因此您可以从1.0版中下载本文的原始源。 或者,克隆存储库,并使用以下命令从发行版1.0中检出标记: git checkout 1.0

翻译自: https://www.javacodegeeks.com/2014/08/monitoring-and-filtering-application-log-to-mail-with-log4j.html

log4j2

log4j2_使用log4j监视和筛选应用程序日志到邮件相关推荐

  1. log4j 程序日志_使用log4j监视和筛选应用程序日志到邮件

    log4j 程序日志 在今天的帖子中,我将向您展示如何将日志语句过滤为警告电子邮件. 这是出于监视我正在处理的一个应用程序的一些关键点的需要. 您可以使用一些工具来执行应用程序监视. 我不会详细介绍这 ...

  2. 使用log4j监视和筛选应用程序日志到邮件

    在今天的帖子中,我将向您展示如何将日志语句过滤为警告电子邮件. 这是出于监视我正在处理的一个应用程序的一些关键点的需要. 您可以使用一些工具来执行应用程序监视. 我不会详细介绍这些工具,但有时让应用程 ...

  3. log4j 程序日志_Log4j错误–减慢您的应用程序

    log4j 程序日志 最近,我们正在对流行的SaaS应用程序进行故障排除. 该应用程序间歇性地变慢. 要从问题中恢复,必须重新启动应用程序. 在高流量期间,此应用有时会变慢. 有时在交通繁忙时也是如此 ...

  4. 【苹果群发】苹果推iMessage接口筛选应用程序利用密钥箱生成CSR文书

    推荐内容IMESSGAE相关 作者推荐内容 iMessage苹果推软件 *** 点击即可查看作者要求内容信息 作者推荐内容 1.家庭推内容 *** 点击即可查看作者要求内容信息 作者推荐内容 2.相册 ...

  5. jvisualvm启动提示“无法监视本地Java应用程序”

    jvisualvm启动提示"无法监视本地Java应用程序" [环境问题] [win10 专业版] jvisualvm作为jdk的配套工具,集成了一系列命令行工具.在加载jdk信息时 ...

  6. 应用程序日志管理工具

    应用程序负责机构中的大量终端用户活动(从日常任务到复杂的业务逻辑相关活动).应用程序日志记录所有这些任务,并且能够全面记录机构内发生的情况.如果要了解应用程序使用情况.性能或安全性,那么日志管理是最佳 ...

  7. EventLog Analyzer应用程序日志管理

    应用程序日志管理的重要性 应用程序负责组织中的大部分终端用户活动,从简单的日常任务到复杂的业务操作.简而言之,应用程序运行业务,关键业务应用程序,如文件服务器.数据库服务器和邮件服务器,需要不断监测, ...

  8. 深入剖析HADOOP程序日志

    参考:http://www.cnblogs.com/gpcuster/archive/2009/08/21/1551715.html 前提 本文来自于 博客园 逖靖寒的世界 http://gpcust ...

  9. log4j 打印线程号配置_Log4J日志整合及配置详解

    一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...

最新文章

  1. java 父类是抽象类 定义private的属性 子类继承_java继承、多态、接口、抽象类定义及应用...
  2. ACM新手之八大输入输出格式
  3. 计算机考研四大金刚,“四大金刚”考研一个都不少
  4. 【Linux】一步一步学Linux——unzip命令(68)
  5. 【python数字信号处理】——循环卷积(也叫圆圈卷积)
  6. 计算机网络日志查询,系统资源管理_百络网警内网管理软件_电脑配置统计,系统日志,日志查询...
  7. git 码云 使用记录
  8. 【分享】iOS功能界面漂亮的弹出框
  9. 枚举算法:试统计正整数n的阶层n!=1*2*...*n尾部连续零的个数。
  10. flask send_filesend_from_directory
  11. Outlook替代Hotmail:社交很重要,但邮箱是根本
  12. JavaScript之this,new,delete,call,apply
  13. React中函数式声明组件
  14. 证明3-SAT问题是NP-complete
  15. OSEK 网络管理之认识NM报文
  16. 用计算机打女生节快乐,二十好几还没女朋友?女神节的打开方式出了问题
  17. php 腾讯云 短信验证码发送
  18. ASP.NET mvcConf Videos Available
  19. 游戏服务器里怎么看在线人数,数据大佬统计服务器在线人数 来看看哪区最鬼...
  20. Python-Django毕业设计交通违章举报平台(程序+Lw)

热门文章

  1. Oracle查看用户权限
  2. Linux - 手册(manual)使用 详解
  3. 几经沉浮,自乱前程——硬盘巨头启示录之迈拓篇
  4. redis info memory
  5. golang runes 字符串 互转
  6. golang 实现 while 和 do……while 循环
  7. python 信号捕获处理 异常终止
  8. golang error类型 简介
  9. linux rsyslog 系统日志转发
  10. mysql udf 一次渗透测试