지식 창고
[C#] 로그 라이브러리(log4net) 본문
https://nowonbun.tistory.com/567
[C#] 로그 라이브러리(log4net)
안녕하세요. 명월입니다. 이 글은 C#에서 사용하는 로그 라이브러리(log4net)에 대한 글입니다. 프로그램를 개발할 때는 보통 Visual studio등의 IDE 툴을 사용해서 디버깅등을 통해 프로그램의 흐름을
nowonbun.tistory.com
이 글은 C#에서 사용하는 로그 라이브러리(log4net)에 대한 글입니다.
프로그램를 개발할 때는 보통 Visual studio등의 IDE 툴을 사용해서 디버깅등을 통해 프로그램의 흐름을 알 수 있습니다. 그래서 개발 중에 에러가 발생하거나 잘못된 결과가 나올 때는 디버깅을 추적하여 값을 수정할 수 있습니다.
개발이 끝나고 Production에 컴파일 된 파일을 올려서 운영 중에 있을 때도 버그가 발생할 수 있습니다. 이 때는 웹서비스의 경우는 IIS를 일반 서비스 프로그램을 사용할 경우에는 IDE툴을 이용하는 것이 아니기 때문에 그 에러를 추적하기가 힘듭니다.
그래서 할 수 있는 방법중에 로그를 기록을 남겨서 프로그램의 흐름을 기록하는데요. 문제가 생겼을 때 그 로그를 추적해서 에러를 예측하거나 찾아낼 수 있습니다.
그 밖에도 로그를 통해서 유저의 행동 형식의 추적이나 습관, 학습등들의 통계자료로도 사용 가능합니다.
C#에서는 로그를 작성해 주는 라이브러리가 두개 존재합니다. 대표적으로 Elmah가 있고 Log4net이 있습니다. Elmah도 꽤 많은 서비스에서 사용하는 것 같습니다만 개인적으로 Log4net을 선호합니다.
이유는 Log4net은 일단 Log4j, Log4Php 등으로 다른 언어에서도 사용되는 라이브러리고 그렇게 호환성이 큰 라이브러리 만큼 커뮤니티도 커서 많은 정보를 쉽게 얻을 수 있기 때문에 선호합니다.
그럼 Log4net을 사용하기 위해서 Nuget을 이용해 Log4Net을 연결합니다.
위 패턴 레이아웃을 확인하면 패턴식이 따로 있는 것을 확인 할 수 있습니다.
사실 패턴 레이아웃식에 대해서 자세히 설명하고 싶기는 합니다만, 별로 크게 중요하지 않고 특별한 것 없으면 「%d [%t] %-5p %c - %m%n」 식이 무난합니다. 만약 더 자세한 내용을 넣고 싶으면 아래의 링크를 참조하세요.
링크 - https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html
여기까지 왔으면 로그를 사용할 수 있는데, 이게 실제 Production에 릴리즈가 된다고 하면 데이터가 소스에 들어가 있어서 설정할 수 없습니다. 뭐 파라미터로 설정할 수 있기는 하지만 로그 파일 설정을 따로 빼야 할 때도 있습니다.
위에서 보면 xml 파일을 Fileinfo로 읽어 와서 XmlConfigurator.Configure를 사용하면 설정할 수 있습니다.
설정은 위 소스에서 만든 것과 같기 때문에 같은 결과가 나옵니다.
저는 ConsoleAppender와 RollingFileAppender만 사용했지만 제공하는 Appender가 굉장히 많습니다. (너무 많아서 다 설명할 수가 없네요.. 혹시 다른 Appender예제가 필요하시면 댓글 달아주세요...)
참조 - https://logging.apache.org/log4net/release/manual/introduction.html
'프로그래밍 > WPF' 카테고리의 다른 글
이미지 등록과 이미지 나타내는 방법 (0) | 2021.12.23 |
---|---|
WPF에서 C++ DLL에 콜백함수 등록하기 (C++/CLR 사용) (0) | 2021.12.16 |
WPF - MVVM 기반 최신 대시보드 | UI 디자인 | XAML | C# | MVVM 튜토리얼 (0) | 2021.11.05 |
WPF - Custom Scroll Bar / Scroll Viewer | UI Design | XAML | C# | Tutorial (0) | 2021.11.04 |
Control의 Style을 별도로 관리 (ResourceDictionary 활용) (0) | 2021.08.01 |