.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 중국어 웹사이트의 기타 관련 기사를 참조하세요!