C#學習筆記
應用所需 |
1. Visual Studio 2019 - 範例專案 WindowsForm (.net Framework) |
目的: |
1. 使用Log4net套件,紀錄Log時發送Email 到google的gmail中 |
範例檔案: | https://github.com/gotoa1234/Log4netSendEmailExample.git |
實作必須: |
1. Google Gmail 的信箱 |
本篇分為三部分 : |
|
一、 | Log4net的安裝 |
二、 |
使用Log4net發送Mail需完成的三個設定 |
三、 | 實際發送 |
一、 Log4net的安裝
Step 1:先建立一個專案,這邊使用的是.netframeWork 4.7.2 的WindowsForm的專案
然後於參考 -> 按下滑鼠右鍵 -> 管理NuGet套件
Step 2:瀏覽 -> 輸入log4net -> 點擊安裝
一、 使用Log4net發送Mail需完成的三個設定
Step 1: 對App.Config設定
1. App.Config 點開
2. 在以下section內插入黃框的代碼
<Configuration>
</Configuration>
Step 1.2:上述代碼如下,可以直接貼上
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<root>
<level value="ALL" />
<appender-ref ref="SmtpAppender" />
</root>
<!-- 寫入傳送E-Mail設定開始 -->
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="capXXXX@gmail.com" />
<from value="capXXXX@gmail.com" />
<subject value="Send log4net E-Mail測試" />
<smtpHost value="smtp.gmail.com" />
<authentication value="Basic" />
<port value="587" />
<username value="輸入自己的發送Mail帳號" />
<password value="輸入自己的發送Mail密碼" />
<bufferSize value="10" />
<EnableSsl value="true"/>
<lossy value="true" />
<threshold value="DEBUG" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="INFO"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{dd/MM/yyyy hh:mm:ss.fff}	%-5level	%-15logger	%message%newline" />
</layout>
</appender>
</log4net>
Step 1.3:其中以下是指定要用log4net的Smtp發送
Step 1.4:重要參數說明
第1個 <to></to> 字段是發送對象的信箱
第2個<from></from> 字段是發送來源,通常是填寫發送者的信箱
第3個<username></username> 是輸入自己的帳號,如我的gmail信箱是 hello@gmail.com 那麼我的帳號就是 hello
第4個<password></password> 是輸入自己的帳號對應的密碼
第5個<evaluator></evaluator> 是log會送Email的層級,這邊設定是Info
第6個<layout></layout> 是發送郵件的內容格式,依這個格式會類似=> 日/月/年 時:分:秒 紀錄層級 物件名稱 紀錄內容
Step 2 : 添加 Assembly 組件的設定,如下圖
1. 先開啟 AssemblyInfo.cs 的檔案
2. 增加以下代碼,使Log4net生效
[assembly: log4net.Config.XmlConfigurator(ConfigFileExtension = "config", Watch = true)]
Step 3 : Google帳號,需開啟發送郵件的應用權限,如下圖
先登入到自己要發送Mail的Google帳號,登入後
1. 左邊選擇 "安全性"
2. 拉到畫面最下面的=> 低安全性應用程式存取權
3. 點擊 => 開啟存取權 (不建議)
※因為我們要允許應用程式透過這個帳號發送Mail,所以要開啟,之後不用了可以隨時關閉
Step 3.2 : 請點擊黑框的部分,使其變成3.3畫面
Step 3.3 : 此時是已開啟的狀態
三、 實際發送
STEP 1 : 回到專案,進行Log4net的發送的測試
1. 點擊 Form.cs 開啟代碼
2. 輸入以下兩行代碼,如下圖
private static readonly log4net.ILog log = log4net.LogManager.GetLogger("Log4net發送Mail測試工具");
log.Info("今天天氣不錯");
3. 執行程式碼後即可去信箱收信
STEP 2 : 信箱可以看到以下信件 可以看到今天天氣不錯