日誌與異常是系統上線後的「聽診器」與「黑盒子」。IsLine Framework 的 AppLogProvider 以渲染器抽象輸出介質、配置驅動行為、分級過濾、緩衝批次寫入四大核心設計,實現了比 Log4Net 更靈活、零程式碼修改即可切換記錄目標的企業級日誌框架。
<OracleUsingSPRender>
<AppenderStyle>Oracle</AppenderStyle> <!-- 附加方式:File/Oracle/SQLServer/Mail -->
<AppenderType>StoredProcedure</AppenderType> <!-- 附加類型:Text/StoredProcedure/HTML -->
<AppenderInf>IsLine.Data.Configuration.OracleConnectString</AppenderInf> <!-- 附加資訊:路徑/連線字串key -->
<AppenderContent>SP_ADD_ILFWLOG.ADD_ILFWLOG</AppenderContent> <!-- 附加內容:SP名稱/SQL語句/郵件模板 -->
<LayoutInf></LayoutInf> <!-- 版面資訊 -->
<Level>Debug</Level> <!-- 記錄等級 -->
</OracleUsingSPRender>
| 渲染器名稱 | 說明 |
|---|---|
| OracleUsingSPRender | Oracle 預存程式記錄 |
| OracleUsingTextRender | Oracle SQL 語句記錄 |
| SQLServerUsingSPRender | SQL Server 預存程式記錄 |
| SQLServerUsingTextRender | SQL Server SQL 語句記錄 |
| FileRender | 文字檔記錄 |
| MailRender | 郵件發送記錄 |
Off > Fatal > Error > Debug > Warn > Info > All
<add key="IsLine.AppLog.Configuration.Level" value="Debug" />>= 全域等級 才會記錄
IsLine.AppLog.AppLogProvider 共 9 個類別,涵蓋配置、功能、列舉三大類:

標準化 6 大欄位,對應資料庫欄位或檔案佔位符:

| 欄位 | 佔位符 | 說明 |
|---|---|---|
| EventDate | @eventDate | 事件時間 |
| Level | @level | 日誌等級 |
| Source | @source | 來源 |
| Trigger | @trigger | 觸發者 |
| Message | @message | 自訂訊息 |
| Exception | @exception | 異常詳情 |
WriteLog(LogEntity)AppLogProvider 以「渲染器」為核心抽象,將日誌記錄的「什麼、哪裡、怎麼記」完全外部化配置。下一篇將提供七大內建渲染器的完整配置範本、自訂渲染器擴充、緩衝與多實例並行實戰。