首頁 > 後端開發 > C++ > 如何在 .NET 應用程式中始終以英文記錄異常訊息?

如何在 .NET 應用程式中始終以英文記錄異常訊息?

Barbara Streisand
發布: 2025-01-19 15:21:13
原創
961 人瀏覽過

How Can I Consistently Log Exception Messages in English in a .NET Application?

確保 .NET 應用程式中英文異常登入的一致性

處理以不同客戶端語言(例如土耳其語)記錄的異常訊息可能會使偵錯變得複雜。本文詳細介紹如何在 .NET 應用程式中以英語一致地記錄這些訊息。

.NET Framework 的異常處理機制會根據目前執行緒的區域性設定從資源檔案擷取錯誤訊息。 某些異常會在存取 Message 屬性時載入這些訊息。

取得英文訊息的常見方法是在日誌記錄期間暫時將執行緒的區域性切換為「en-US」:

<code class="language-csharp">using System;
using System.Globalization;
using System.IO;

try
{
    StreamReader sr = new StreamReader(@"c:\does-not-exist");
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString()); // Localized message
    ExceptionLogger el = new ExceptionLogger(ex);
    Thread t = new Thread(el.DoLog);
    t.CurrentUICulture = new CultureInfo("en-US");
    t.Start();
}</code>
登入後複製

ExceptionLogger 類別處理英文日誌記錄:

<code class="language-csharp">class ExceptionLogger
{
    Exception _ex;

    public ExceptionLogger(Exception ex)
    {
        _ex = ex;
    }

    public void DoLog()
    {
        Console.WriteLine(_ex.ToString()); // English message
    }
}</code>
登入後複製

需要注意的是,對於某些異常,訊息元件可能會從異常來源的語言資源載入。 即使使用這種技術,這也可能導致部分本地化的消息。

為了實現完全控制,請考慮從應用程式一開始就在配置有「en-US」區域性的執行緒中執行所有非 UI 程式碼。 但是,.NET Framework 不直接支援覆蓋異常訊息的區域設定。

以上是如何在 .NET 應用程式中始終以英文記錄異常訊息?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板