NLog를 Logger로 쓰는 C# 프로그램의 로그에서 한글 부분만 "????" 로 깨져서 나오는 이슈가 있었다.
NLog의 인코딩문제인 듯 하여 encoding 옵션을 utf-8 로 주어 봤는데 변화가 없었다.
다음으로 euc-kr, cp949 등 모두 다 대입해봐도 해결이 안되었다.. 그런데.. 문제는 NLog가 아니었다.
오픈소스인 NLog의 GetBytes 부분을 보다가 불현듯 서늘한 기운을 느꼈다.
NLog는 인코딩을 할 때 Encoding.Default 형식을 사용한다고 GPT가 그랬는데..
생각해보니 내 Encoding.Default를 직접 확인해본 적은 없잖아..?!
나는 한글 PC니까 당연히 한국어로 설정되어 있겠지 생각했지만 혹시 몰라서 한번 찍어보기로 했다.
Encoding.Default.EncodingName 속성을 출력해보면 간단히 확인해 볼 수 있다.
그래서 찍어보니… “서유럽어”..?? 이건 뭐지.. 왜 내 PC가 서유럽이 되있는 거임..
예전에 Locale 에 따라 다른 동작을 하는 기능 개발이 있었는데 아마 그 때 이렇게 바꾸고 까먹어버렸나…..???
그래서 당장 Windows의 Locale 설정을 한국으로 바꾸니 다시 시작해야 적용된다는 문구가 떴다.
이슈를 지금 당장 해결할 수 있는데 이런 귀찮음 쯤이야..
재부팅하고 다시 NLog로 로깅을 해보니 한국어가 참~~ 잘 나왔다.
하,, 그냥 내 PC의 설정 문제였구나..
그래도 이런 깨달음(?) 을 얻기 위해 오픈소스를 직접 뜯어본 것과 GPT 와 협업한 것,
그리고 기능에서 아무리 해도 문제를 발견하지 못할 때 환경을 한번쯤 고려해보는 것이 좋다는 경험측 을 얻어서 뭐..
오늘도 하나 배웠지.
'Development Experience > C#' 카테고리의 다른 글
| C# log4net을 XML 대신 코드로 사용하기 (0) | 2021.08.31 |
|---|---|
| Winform UI Component의 Dock 스타일 적용이 잘 안 될 경우 (0) | 2021.03.04 |
| 트리 구조의 DataSource를 두 UI 컴포넌트에 연결할 때 (0) | 2020.11.30 |
| C# Winform DropDownList의 SelectedIndex 이벤트 관리 (Telerik 사용) (2) | 2020.11.30 |
| WPF Window 창이 작업 표시줄 (Task bar) 을 덮는다면.. (0) | 2020.03.30 |