이 포스트를 만든 목적
- 공부 하려고
이 포스트의 준비물
- 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 를 사용하고 있다. :)
'책 정리 > Effective C#' 카테고리의 다른 글
item 41, 새로운 구조체보다는 DataSet이 좋다. (0) | 2010.08.15 |
---|---|
item 40, 적절한 collection 개체를 이용하라 (0) | 2010.08.14 |
item 39, 닷넷의 유효성 검증 기능을 사용하라. (0) | 2010.08.10 |
item 38, 데이터 바인딩을 사용하라. (0) | 2010.08.04 |
item 37, 표준 환경설정 메커니즘을 이용하라 (0) | 2010.08.03 |
item 35, 이벤트 핸들러보다 override를 사용하는 편이 낫다. (0) | 2010.08.01 |
item 34, 웹 API는 큰 단위로 작성하라 (0) | 2010.08.01 |
item 33, 타입의 가시성을 제한하라. (0) | 2010.08.01 |
item 32, 작고 응집도가 높은 어셈블리가 더 좋다. (0) | 2010.07.31 |
item 31, 작고 단순한 메서드가 더 좋다. (0) | 2010.07.25 |
최근댓글