책 정리/Effective C#
item 36, 닷넷 런타임의 진단기능을 활용하라
최익필
2010. 8. 1. 18:32
이 포스트를 만든 목적
- 공부 하려고
이 포스트의 준비물
- gVim 7.2
- Microsoft Visual C# 2010 Express - 20% 부족하다.
참조 링크
- http://logging.apache.org/log4net/
- 아파치 진영의 log4net 싸이트
- http://www.yunsobi.com/blog/299
- 좋은 정보가 많은 서비의 다락방 블로그 에, 전반적인 배경 지식이 잘 나와 있다.
- http://loveev.tistory.com/15
- 간단한 사용법이 나와 있다.
참조 서적
- Effective C#
내용
닷넷 런타임 진단 기능이 무엇인가?
쉽게 말해서, 프로그램 행동 흔적을 남기는 기능을 뜻한다. 이것은 로그라고 불린다.
로그를 남기는게 왜 중요한가?
- 살다보면 꼭 의도한 데로 살아가지 않는다. 이것은 프로그램도 마찬가지이다.
나라도 언제나 디버깅을 할 수 있지는 않는다. 그러므로, 흔적을 남겨 버그 발생을 관찰 해야 한다.
- 배포한 프로그램이 설치된 환경에는 디버깅 환경이 없다고 보는게 맞다.
.. 일반 사용자가 디버깅 할 수 있는가? 절대로 아니다. 그러므로 로그를 남겨서 버그 발생을 관찰해야 한다.
System.Diagnostics.Debug, System.Diagnostics.Trace, System.Diagnostics.EventLog 클래를 제공하는데, ... C# 의 이 기능 보다는 오히려 외부 라이브러리의 도움을 받는게 훨씬 강력하고, 피드백이 좋으며, 더 범용적이다.
그 훨씬 더 좋다는게 무엇인가?
바로 log4net 이다.
왜 이것이 훨씬 더 좋은가?
자바용을 시작으로, C++용, C# 용 등 기타 다른 언어들로 포팅되어 있으므로, 하나 배워서, 다른 곳에서도 잘 쓸 수 있기 때문이다. 굳이 C# 에서만 사용되는 내장 기능보다는 이것이 훨씬 더 좋다. 또한 이 로깅 시스템은 ... 몹시 많은 기능도 지원한다. : )
결론
- 이번 항목은 코드 재사용을 위해서 만들어진 항목이다 보니, 내장 기능을 사용하도록 되어 있다. 그러면 더더욱 log4net 을 이용하는게 훨씬 좋다.
여담
- 난 이러한 존재를 회사에 입사하고 알았다. 회사에선 log4cxx 를 사용하고 있다. :)