日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/3 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 log4j 程序日志_使用log4j监视和筛选应用程序日志到邮件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

log4j 程序日志

在今天的帖子中,我將向您展示如何將日志語(yǔ)句過(guò)濾為警告電子郵件。 這是出于監(jiān)視我正在處理的一個(gè)應(yīng)用程序的一些關(guān)鍵點(diǎn)的需要。 您可以使用一些工具來(lái)執(zhí)行應(yīng)用程序監(jiān)視。 我不會(huì)詳細(xì)介紹這些工具,但有時(shí)讓?xiě)?yīng)用程序發(fā)送警告電子郵件會(huì)更容易。

我主要將log4j用于記錄需求。 不幸的是,由于Java生態(tài)系統(tǒng)中有許多日志記錄框架,因此本文僅涵蓋其中的一部分。 將來(lái)我可能會(huì)為其他人做些事情,但是我想強(qiáng)調(diào)一下AntónioGon?alves關(guān)于記錄日志API標(biāo)準(zhǔn)化的舊文章: 我需要您作為L(zhǎng)ogging API Spec Lead! 。 這里介紹的示例是針對(duì)log4j的 ,但是github項(xiàng)目還包含一個(gè)log4j2示例。

用例

為了提供更多細(xì)節(jié),我希望在應(yīng)用程序生成錯(cuò)誤時(shí)得到通知,但也忽略應(yīng)用程序本身已經(jīng)處理的錯(cuò)誤。 對(duì)于一個(gè)更具體的示例,我遇到一種情況,其中數(shù)據(jù)庫(kù)插入會(huì)生成約束違例異常,但是此錯(cuò)誤由應(yīng)用程序?qū)iT(mén)處理。 即使這樣,JDBC驅(qū)動(dòng)程序也會(huì)記錄該異常。 對(duì)于這種情況,我不希望收到通知。

設(shè)置SMTPAppender

無(wú)論如何,查看log4j ,您可以創(chuàng)建一個(gè)將所有日志發(fā)送到電子郵件的附加程序,只需選中SMTPAppender即可 。 看起來(lái)像這樣:

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>

篩選

我們的過(guò)濾需求在標(biāo)準(zhǔn)log4j庫(kù)中不可用。 您需要使用log4j-extras ,它為您提供了支持過(guò)濾復(fù)雜表達(dá)式的ExpressionFilter 。 我們還使用常規(guī)log4j庫(kù)中的StringMatchFilter 。

現(xiàn)在,我們可以向SMTPAppender添加一個(gè)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>

此配置將過(guò)濾日志以電子郵件只有ERROR和FATAL閾值中的類(lèi)不登錄與Log4jExpressionFilter在它的名字,并沒(méi)有ERROR01的日志信息。

看一下LoggingEventFieldResolver ,看看可以與ExpressionFilter一起使用的其他表達(dá)式 。 您可以使用EXCEPTION,METHOD和其他一些非常有用的工具。

測(cè)試中

如果您依賴(lài)真實(shí)的服務(wù)器,則測(cè)試SMTPAppender并不容易。 幸運(yùn)的是,您可以使用模擬javamail ,甚至不必?fù)?dān)心會(huì)污染SMTP服務(wù)器。 這也包含在github項(xiàng)目中。

資源資源

您可以從我的github存儲(chǔ)庫(kù)中克隆log4j和log4j2的完整工作副本。

Log4j郵件過(guò)濾器

由于我將來(lái)可能會(huì)修改代碼,因此您可以從1.0版中下載本文的原始源。 或者,克隆存儲(chǔ)庫(kù),并使用以下命令從發(fā)行版1.0中檢出標(biāo)記: git checkout 1.0 。

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

log4j 程序日志

總結(jié)

以上是生活随笔為你收集整理的log4j 程序日志_使用log4j监视和筛选应用程序日志到邮件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。