這個 NLog.config 是我自己常用的,貼上來方便自己日後查找剪貼。
詳細的 log 訊息常常幫了我很多忙。如果當初沒有埋一堆除錯訊息到 log,實在很難想像如何研判一些系統上線後的奇怪問題,尤其是客戶的主機遠在另一個不同時區的國家。
底下這個 NLog 組態檔,是我在幾個專案中使用的範本,對我來說已算是挺好用的了。
其中以 [[ 和 ]] 包住的文字代表要手動替換的內容。其餘各項設定,這裡就不解釋了(Sorry!),可查看官網的說明。
詳細的 log 訊息常常幫了我很多忙。如果當初沒有埋一堆除錯訊息到 log,實在很難想像如何研判一些系統上線後的奇怪問題,尤其是客戶的主機遠在另一個不同時區的國家。
底下這個 NLog 組態檔,是我在幾個專案中使用的範本,對我來說已算是挺好用的了。
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!-- See http://nlog-project.org/wiki/Configuration_file for information on customizing logging rules and outputs. --> <targets> <!-- add your targets here --> <target name="file" xsi:type="File" layout="${longdate} | ${level:uppercase=true} | ${logger} | ${message} ${onexception:${newline}${exception:format=tostring}}" fileName="${basedir}/Logs/logfile.txt" archiveFileName="${basedir}/Logs/archives/log.{#}.txt" archiveEvery="Day" archiveNumbering="Rolling" maxArchiveFiles="7" concurrentWrites="true" keepFileOpen="false" encoding="UTF-8" /> <target name="eventLog" xsi:type="EventLog" layout="${longdate} | ${level:uppercase=true} | ${logger} | ${message} ${onexception:${newline}${exception:format=tostring}}" source="[[應用程式名稱]]" log="Application" /> <target name="mail" xsi:type="Mail" smtpServer="[[SMTP主機名稱]]" smtpPort="25" smtpAuthentication="None" smtpUserName="" smtpPassword="" enableSsl="false" from="[[寄件人]]<[[寄件人信箱]]>" to="[[收件人信箱]]" html="false" encoding="UTF-8" addNewLines="true" subject="[[應用程式名稱]]:${machinename} 於 ${shortdate} ${time} 產生 ${level} 等級的紀錄" header="=========================================================================" body="時間:${longdate} ${newline}Log等級:${level:uppercase=true} ${newline}Logger:${logger} ${newline}Source:${callsite:className=true} ${newline}Exception類別:${exception:format=type} ${newline}錯誤訊息:${message} ${newline}${onexception:${exception:format=tostring}} ${newline}" footer="=========================================================================" /> </targets> <rules> <!-- add your logging rules here --> <logger name="*" minlevel="Debug" writeTo="file" /> <logger name="*" minlevel="Warn" writeTo="file,eventLog" /> <logger name="*" minlevel="Error" writeTo="file,eventLog,mail" /> </rules> </nlog>
其中以 [[ 和 ]] 包住的文字代表要手動替換的內容。其餘各項設定,這裡就不解釋了(Sorry!),可查看官網的說明。
沒有留言: