ホームページ > バックエンド開発 > C++ > .NET アプリケーションで例外メッセージを英語で一貫して記録するにはどうすればよいですか?

.NET アプリケーションで例外メッセージを英語で一貫して記録するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-19 15:21:13
オリジナル
1004 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート