Heim > Backend-Entwicklung > C++ > Wie kann ich Ausnahmemeldungen in einer .NET-Anwendung konsistent auf Englisch protokollieren?

Wie kann ich Ausnahmemeldungen in einer .NET-Anwendung konsistent auf Englisch protokollieren?

Barbara Streisand
Freigeben: 2025-01-19 15:21:13
Original
962 Leute haben es durchsucht

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

Gewährleistung einer konsistenten englischen Ausnahmeprotokollierung in .NET-Anwendungen

Der Umgang mit Ausnahmemeldungen, die in verschiedenen Clientsprachen (z. B. Türkisch) protokolliert werden, kann das Debuggen erschweren. In diesem Artikel erfahren Sie, wie Sie diese Nachrichten in Ihrer .NET-Anwendung konsistent auf Englisch protokollieren.

Der Ausnahmebehandlungsmechanismus des .NET Framework ruft Fehlermeldungen aus Ressourcendateien basierend auf den Kultureinstellungen des aktuellen Threads ab. Einige Ausnahmen laden diese Nachrichten beim Zugriff auf die Eigenschaft Message.

Ein gängiger Ansatz, um die englische Nachricht zu erhalten, besteht darin, die Kultur des Threads während der Protokollierung vorübergehend auf „en-US“ umzustellen:

<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>
Nach dem Login kopieren

Die ExceptionLogger-Klasse übernimmt die englischsprachige Protokollierung:

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

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

    public void DoLog()
    {
        Console.WriteLine(_ex.ToString()); // English message
    }
}</code>
Nach dem Login kopieren

Es ist wichtig zu beachten, dass bei bestimmten Ausnahmen Nachrichtenkomponenten möglicherweise aus Sprachressourcen am Ursprung der Ausnahme geladen werden. Dies kann auch bei dieser Technik zu teilweise lokalisierten Meldungen führen.

Für eine vollständige Kontrolle sollten Sie erwägen, den gesamten Nicht-UI-Code in einem Thread auszuführen, der vom Start der Anwendung an mit der Kultur „en-US“ konfiguriert ist. Das .NET Framework unterstützt jedoch nicht direkt das Überschreiben des Gebietsschemas der Ausnahmemeldung.

Das obige ist der detaillierte Inhalt vonWie kann ich Ausnahmemeldungen in einer .NET-Anwendung konsistent auf Englisch protokollieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage