傳送錯誤日誌到郵箱的兩種方式
最近寫專案考慮把一些執行時候出現的異常傳送郵箱,這樣可以隨時監控錯誤,網上看可以用log4J傳送錯誤日誌到郵箱,現在把這種方式記錄下來,以備下次用
1.log4j方式
需要jar包
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
<!--log4J--> <dependency> <groupId>log4j.properties配置 這裡需要配置上MAILorg.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency>
log4j.rootLogger =MAIL
#傳送錯誤郵件 log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender log4j.appender.MAIL.Threshold=ERROR我用126郵箱傳送給163郵箱,打碼的依次是傳送郵箱名,郵箱名,密碼,接收郵箱名, SMTPUHost根據每個郵箱不同,需要自己修改,傳送郵件的日誌級別是ERROR型。log4j.appender.MAIL.BufferSize=10 log4j.appender.MAIL.From=*****@126.com log4j.appender.MAIL.SMTPHost=smtp.126.com log4j.appender.MAIL.SMTPUsername=***** log4j.appender.MAIL.SMTPPassword=******* log4j.appender.MAIL.SMTPDebug=true log4j.appender.MAIL.Subject=Log4JErrorMessage log4j.appender.MAIL.To=*****@163.com log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout log4j.appender.MAIL.layout.ConversionPattern=[framework]%d - %c -%-4r[%t]%-5p %c %x -%m%n</span></strong>
自己測試,每次會發送三次郵件,一次是自己做aop異常捕獲的,還有兩次是druid列印的錯誤日誌,有點繁瑣。決定用第二種方式。
2.自定義郵件傳送util
這個還是需要上面的mail包,下面是我自定義的異常郵件傳送工具
import org.springframework.mail.MailException; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.io.UnsupportedEncodingException; import java.util.Properties; /** * Description * * @author wangsong * @date 19:39 2018/1/30 */ public class ErrorLogMail { private static final String HOST = "smtp.126.com"; private static final Integer PORT = 25; private static final String USERNAME = "***@126.com"; private static final String PASSWORD = "****"; private static final String EMAILFORM = "***@126.com"; private static JavaMailSenderImpl mailSender = createMailSender(); /** * 郵件傳送器 * * @return 配置好的工具 */ private static JavaMailSenderImpl createMailSender() { JavaMailSenderImpl sender = new JavaMailSenderImpl(); sender.setHost(HOST); sender.setPort(PORT); sender.setUsername(USERNAME); sender.setPassword(PASSWORD); sender.setDefaultEncoding("Utf-8"); Properties p = new Properties(); p.setProperty("mail.smtp.timeout", "25000"); p.setProperty("mail.smtp.auth", "false"); sender.setJavaMailProperties(p); return sender; } /** * 傳送郵件 * @param html 傳送內容 * @throws MessagingException 異常 * @throws UnsupportedEncodingException 異常 */ public static void sendHtmlMail( String html) { try { MimeMessage mimeMessage = mailSender.createMimeMessage(); // 設定utf-8或GBK編碼,否則郵件會有亂碼 MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); messageHelper.setFrom(EMAILFORM, "wangsong"); messageHelper.setTo("******@163.com"); messageHelper.setSubject("ErrorLog"); messageHelper.setText(html, true); mailSender.send(mimeMessage); } catch (MessagingException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (MailException e) { e.printStackTrace(); } }
logger.error(pjp.getSignature() + " error ", e); //不可知異常,傳送郵件ErrorLogMail.sendHtmlMail("時間:"+new Date()+"方法:"+pjp.getSignature()+"原因:"+e.toString());
方法加在aop捕獲異常處,完成
相關推薦
儲存錯誤日誌的兩種方式
/* 儲存錯誤日誌兩種方式 */ // 寫入到檔案當中 //1關閉display_error選項,確保錯誤不會顯示到桌面 //2開啟外部儲存錯誤資訊 log_error=On //3設定錯誤儲存的日誌,檔案位置Error_log=D:/error.log //4 注意不要關
Linux服務器之間傳送文件的兩種方式
linux服務器傳送文件方式一: scp【優點】簡單方便,安全可靠;支持限速參數 【缺點】不支持排除目錄【用法】scp就是secure copy,是用來進行遠程文件拷貝的。數據傳輸使用 ssh,並且和ssh 使用相同的認證方式,提供相同的安全保證 。scp [參數] <源地址(用戶名@IP地址或主機名)
spring boot日誌配置兩種方式
方法一: <?xml version="1.0" encoding="UTF-8" ?> <configuration> <appender name="consoleLog" class="ch.qos.logback.core.
yarn中檢視jobs日誌的兩種方式
檢視yarn日誌的兩種方式 1.介面版 1)點選application 2)輸入即可 2.命令列版 yarn logs -applicationId application_1517538889175_2550 > logs.txt 通過v
xshell列印日誌的兩種方式
我們使用xshell時會經常需要把xshell中的內容列印到檔案中,或者因為內容過多,xshell介面無法顯示先顯示出的內容,或者需要明確記錄檔案中的東西,與再次執行的結果對比。無論因為什麼原因,都會經常使用到xshell日誌問題。 方法一 1. 開啟“檔案”選單項,選
傳送錯誤日誌到郵箱的兩種方式
最近寫專案考慮把一些執行時候出現的異常傳送郵箱,這樣可以隨時監控錯誤,網上看可以用log4J傳送錯誤日誌到郵箱,現在把這種方式記錄下來,以備下次用 1.log4j方式 需要jar包 <dependency> <groupId>javax.mai
使用兩種方式,Android 傳送檔案到指定郵箱(帶多個附件)
第一種方法,呼叫系統的郵件軟體來發送 眾所周知在Android中呼叫其他程式進行相關處理,都是使用的Intent。當然,Email也不例外。 在Android中,呼叫Email有三種類型的Intent: Intent.ACTION_SENDTO 無附件的傳送
spring4+ThreadPoolTaskExecutor建立執行緒 兩種方式傳送郵件
百度雲程式碼下載地址包含測試用例 :點選後跳轉 ThreadService package com.konglingfu.service; public interface ThreadService extends Runnable{ public void se
Node.js —— 兩種方式傳送單頁面
1、安裝socket.io和express和生成package.json npm install socket.io --save npm install --save express nam init 2、app.js const express = re
js form表單傳送資料兩種方式(post get)區別
<!DOCTYPE HTML> <html> <head> <title>please enter your title</
Shell中將標準錯誤標準輸出重定向到同一個檔案的兩種方式
在Shell中,標準錯誤寫法為 2>, 標準輸出為 1> 或者 >。如要要將標準輸出和標準錯誤合二為一,都重定向到同一個檔案,可以使用下面兩種方式: 方式一: > out.txt 2>&1 [[email protected] ~
兩種方式解決jquery Ajax 傳送中文亂碼的方法,
查過網上有很多方法,但很多都不成功,可能是因為在不環境下的區別吧! 首先,必須保證前臺後臺的編碼統一,其次在連線資料庫時的url也要指定編碼。 第一:簡單直接,修改頁面 data:{ use
Http協議中,主要常見的傳送資料到伺服器有哪兩種方式,這兩種方式的特點和區別,以及其在Http協議中的位置
Get 和 Post 的區別兩點: 一、這兩者傳遞引數時所用的編碼不一定是一樣的。在 Tomcat 中似乎 Get 的編碼方式是根據頁面中指定的編碼方式,而 Post 則是一直使用同一種編碼方式,可在 Tomcat 的 server.xml 中配置。 二、使用 Get 的時候,引數會顯示在位址列上,而 Po
Network 【用 AFN 通過 POST 方式傳送JSON資料的兩種形式】
POST 傳送資料有兩種形式:1、傳送純文字的內容 2、傳送的 body 部分帶有檔案(圖片,音訊或者其他二進位制資料) 1、使用 POST 方式傳送純文字內容: [mgr POST:@"https://AAAAA" parameters:params success:^(AFHTTPRequestOpe
ABAP 傳送郵件的兩種方式
REPORT ZDDTEST005. DATA: WA_ZBCFILE TYPE ZBCFILE. DATA: IT_ZBCFILE LIKE TABLE OF WA_ZBCFILE. DATA: BEGIN OF IT_MAILCONTENT OCCURS 0, PLANT LIKE ZBCFILE-
GET與POST比較-使用HTTP協議將客戶端的請求傳送到伺服器端的兩種方式
1、get是從伺服器上獲取資料,post是向伺服器傳送資料;2、 在客戶端,get方式在通過URL提交資料,資料在URL中可以看到,post方式資料放置在HTML HEADER內提交;3、 對於ge
log4j控制日誌輸出檔名稱的兩種方式
1. 第一種方式 在類物件中用如下方式定義logger變數 private static Logger logger = Logger.getLogger("lemmaXml");這樣通過名稱的方式獲取logger,需要在log4j.properties檔案中定義一個名稱
陣列的初始化兩種方式?初始化常見錯誤
陣列是儲存同一種資料型別多個元素的集合。 a:動態初始化 只指定長度,由系統給出初始化值 格式: * 資料型別[] 陣列名 = new 資料型別[陣列長度]; * int[] arr = new int[5]; b:靜態
HttpClient傳送請求,get和post兩種方式,分別帶引數和不帶引數
(一)、匯入HttpCLient的jar包 <dependencies> <dependency> <groupId>org.apache.httpcomponents</groupId> <arti
curl傳送檔案 post圖片的兩種方式
First Type: curl -F "[email protected]/mnt/shared/Image/jpg/Screensho1t.jpg; filename='Scree