UOF2的自訂除錯Log | EIP | BPM |日誌|事件

by | 3 月 30, 2026 | 一等一UOF系統, 程式 | 0 comments

Views: 0

有人看到部落格內容問的,這塊有幾個做法

  1. 使用官方建議作法 Ede.Utility.Log.Logger
  2. 使用Nlog (Eip的bin本身有nlog 4.4.2版可以用),不過用起來有點麻煩
  3. 用客製導入廠商自己寫的的Log系統(例如冠永騰的)
  4. 其他作法,例如寫txt

不過我這篇目前只教官方提供的, Ede.Utility.Log.Logger 我任職的公司用的是冠永騰客製的,也許我有空也可以寫一篇冠永騰客製的作法。

Ede.Uof.Utility.Log.Logger 用法

官方的 系統開發手冊(底層) 其實有這個章節,在這個章節:

Log的目錄

官方手冊有寫的大致上是這幾個

  1. Write(LOG分類,訊息,參數[]);
  2. Write(LOG分類,訊息);
  3. WriteError(錯誤訊息內容)
  4. getFilPath(Log類型);
  5. GetLog(LOG類型,時間,事件ID);

基本上我只用2跟3而已,想看Log不需要自己寫工具,到系統管理>檢視事件 就能看了

檔案位置在於網站目錄下的AppData\Log\日期\

對應在AppData的目錄下,如果想改只能改Web.configApp_Data的對應目錄設定FileStorageFolder

Ede.Uof.Utility.Log.Logger.Write("自訂分類名稱",$"錯誤訊息 {ex}"); 

這邊可以自己訂分類,例如我想記錄訪客通知排程GuestTask,我的Log分類就直接叫做GusetTask

using Ede.Uof.Utility.Log; //選用

//其他程式碼
try{
 //其他程式碼...
}
catch(Exception ex)
{
    Ede.Uof.Utility.Log.Logger.Write("自訂分類名稱",$"錯誤訊息 {ex}"); 
}

紀錄錯誤訊息大致上是這樣寫

using Ede.Uof.Utility.Log; //選用

//其他程式碼
try{
 //其他程式碼...
}
catch(Exception ex)
{
    Ede.Uof.Utility.Log.Logger.WriteError($"錯誤訊息 {ex}"); //這邊會直接寫到ErrorLog
}

範例1 Logger.Write

這邊我們可以寫一個測試器來玩玩

我在CDS資料夾下新增一個LogTest,然後新增一個頁面

這邊就看自己需要命名就好,我們這裡寫一個測試的加減用

程式碼 LogTest.aspx 前端

<%@ Page Title="" Language="C#" MasterPageFile="~/Master/DefaultMasterPage.master" AutoEventWireup="true" CodeFile="LogTest.aspx.cs" Inherits="CDS_LogTest_LogTest" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <table class="PopTable">
        <tr>
            <td>LOG分類</td>
            <td>
                <asp:TextBox runat="server" ID="txtLogType"/>
            </td>
        </tr>
        <tr>
            <td>LOG內容</td>
            <td>
                <asp:TextBox runat="server"  ID="txtLogContent" TextMode="MultiLine"/>
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <asp:Button runat="server" id="btnWrite" OnClick="btnWrite_Click" Text="寫入Log"/>
                <asp:Label ID="lblMsg" runat="server" ForeColor="Red"/>
            </td>
        </tr>
    </table>
</asp:Content>

程式碼 LogTest.aspx.cs 後端

using System;

/// <summary>
/// Log測試頁面
/// </summary>
public partial class CDS_LogTest_LogTest : Ede.Uof.Utility.Page.BasePage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    /// <summary>
    /// 寫入Log
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnWrite_Click(object sender, EventArgs e)
    {
        Ede.Uof.Utility.Log.Logger.Write(txtLogType.Text,txtLogContent.Text);
        lblMsg.Text = "寫入Log完成"; 
    }
}

測試

測試畫面

如何觀看Log

系統管理 > 檢視事件

範例2 Logger.WriteError

這邊沿用原本頁面,我們增加藍未來測試寫入Error

程式碼 前端

<%@ Page Title="" Language="C#" MasterPageFile="~/Master/DefaultMasterPage.master" AutoEventWireup="true" CodeFile="LogTest.aspx.cs" Inherits="CDS_LogTest_LogTest" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    <table class="PopTable">
        <tr>
            <td>LOG分類</td>
            <td>
                <asp:TextBox runat="server" ID="txtLogType"/>
            </td>
        </tr>
        <tr>
            <td>LOG內容</td>
            <td>
                <asp:TextBox runat="server"  ID="txtLogContent" TextMode="MultiLine"/>
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <asp:Button runat="server" id="btnWrite" OnClick="btnWrite_Click" Text="寫入Log"/>
                <asp:Label ID="lblMsg" runat="server" ForeColor="Red"/>
            </td>
        </tr>

         <tr>
     <td>Error LOG內容</td>
     <td>
         <asp:TextBox runat="server"  ID="txtErrorContent" TextMode="MultiLine"/>
     </td>
 </tr>
 <tr>
     <td></td>
     <td>
         <asp:Button runat="server" id="btnWriteError" OnClick="btnWriteError_Click" Text="寫入Log"/>
         <asp:Label ID="lbMsgError" runat="server" ForeColor="Red"/>
     </td>
 </tr>
    </table>
</asp:Content>

程式碼 後端

using System;

/// <summary>
/// Log測試頁面
/// </summary>
public partial class CDS_LogTest_LogTest : Ede.Uof.Utility.Page.BasePage
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    /// <summary>
    /// 寫入Log
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnWrite_Click(object sender, EventArgs e)
    {
        Ede.Uof.Utility.Log.Logger.Write(txtLogType.Text,txtLogContent.Text);
        lblMsg.Text = "寫入Log完成"; 
    }

    /// <summary>
    ///寫入錯誤Log
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnWriteError_Click(object sender, EventArgs e)
    {
        Ede.Uof.Utility.Log.Logger.WriteError(txtErrorContent.Text);
        lbMsgError.Text = "寫入Error Log完成";
    }
}

看LOG

同樣的 系統管理 > 檢視事件

0 Comments

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *