2010-12-20 4 views
3

내 응용 프로그램은 사용자 작업 (삽입, 업데이트, 삭제 등) 및 예외에 대한 정보를 기록해야하며 일부 로그 프레임 워크를 검색하기 위해 Oracle10에 로그를 저장하려고합니다. 용도. 나는에 대해 조금 읽어ASP.NET 응용 프로그램 용 로깅 프레임 워크

1 -Log4Net

2 - 로깅 응용 프로그램 블록

3 -

ELMAH

뭐죠 이러한 로그 도구에 대한 당신의 의견?을 좋은 프레임 워크 (또는 구현 방법)로 응용 프로그램에 로그온 하시겠습니까?

*이 응용 프로그램 블록 로깅 프로젝트 관리자와 토론 후) = 다른 프레임 워크에 대한

+0

http://stackoverflow.com/questions/710863/log4net-vs-nlog?answertab=votes#tab-top –

답변

3

log4net 및 로깅 응용 프로그램 블록 모두 유효한 선택입니다. 나는 ELMAH가 대부분 오류 로깅에 초점을 맞추고 있다고 생각합니다. 그래서 당신이 원하는 것은 아닙니다.

직장에서 저는 두 개의 프로젝트에서 log4net을 사용합니다. 그것은 안정적이고, 실행 가능하며, 확장 가능하며, 우리는 그 어떤 문제도 가지지 않았습니다.

나는 아마도 log4net을 사용하여 로깅을 수행하고 ELMAH도 예외를 기록합니다. 처리되지 않은 예외를 수동으로 기록 할 수 있으며 응용 프로그램에서 catch하고 처리하는 예외는 ELMAH에 대한 단일 호출로 기록 될 수 있습니다. 이것은 이중 로깅 (double-logging)처럼 보일 수 있습니다 (그리고 그것은 :-)입니다). 그러나 응용 프로그램에서 예기치 않은 오류가 발생하면 ELMAH 로그를 갖는 것이 매우 중요합니다.

NLog project에 대한 좋은 점을 들었지만 직접 사용하지 않았습니다. 그것은 log4net보다 조금 복잡해 보이지만, 자동으로 로그 메시지에 문맥 정보를 추가 할 수 있다는 이점이 있습니다 (ELMAH와 비슷합니다).

+0

OP가 오류를 기록하는 데 ELMAH를 사용할 수없고, 오류가없는 정보를 기록하기 위해 log4net을 사용할 수 없습니다. –

+0

물론 @ 스콧, 그리고 그것은 실제로 또한 내가하는 일입니다. 혼란을 피하기 위해 답변에 추가했습니다. – driis

1

내 의견 우리의 선택이 있지만, 이것에 대해 코멘트를 할 것입니다 :

  1. Log4Net을 - 그것을 사랑해. 이것은 내가 가장 자주 사용하는 로깅 시스템입니다. 모든 것을 시작하기가 쉽습니다. 또한 매우 유연하며 무엇이든 기록 할 수 있습니다.

  2. 로깅 응용 프로그램 차단 - 유용한 옵션입니다. 나는 여전히 Log4Net을 선호한다 (그러나 이유는 대부분 개인적이다).

  3. Elman - 예외를 기록하기 위해 ASP.NET 응용 프로그램에 들어가기에 좋습니다. 일반적인 메시지 로깅을 위해, 나는 여전히 Log4Net과 함께 갈 것이다.

그리고 내가 당신이 제안 무엇 내 의견에 따라 같은데요 ...

그리고 그렇지 않은 경우는, Log4Net을 사용하여 간단하게 로그인 할 수 있도록 응용 프로그램에서 사용할 수있는 어댑터를 만들 수 있습니다.

+0

감사합니다. 저스틴에게 감사드립니다. 나도 log4Net 좋아, 응용 프로그램 블록도 좋아 보인다. – Ewerton

0

필자는 개인적으로 BitFactory.Logging을 좋아하는데, 가볍고 적절한 추상화를 사용하여 호출 코드를 쉽게 테스트 할 수 있기 때문입니다.

즉, 로그인하려는 항목 (삽입, 업데이트, 삭제)은 트리거 만 사용하여 기록 할 수 있으며 설정에 따라 성능이 향상 될 수 있습니다.

0

개인적으로 항상 개인적으로 항상 래퍼를 생성하므로 내 자신의 ILog 구현이 있으므로이 중 선택하여 작동합니다. 이렇게하면 쉽게 구현할 수 있습니다.

나는 2 번 시도했지만 고통 스러웠다. # 1은 우리에게 잘 돌아 갔을 것이지만 우리는 그것을 간절히 바라지 않았다. 간단한 커스텀 로깅을했다. # 3에서 알 수있는 전부는 조직에서 구현하는 데 문제가있는 사람을 알고 있다는 것입니다. 왜 그런지는 모르겠지만 실제로는 꽤 흥미 롭습니다. 나는 당신이 개인적으로 잘못 갈 수 있다고 생각하지 않는다. 부분적으로 당신이 좋아하는 API에 달려 있습니다.

HTH.

0

Log4net은 조용합니다. 기본적으로 log4j 버전입니다. 엘마 (Elmah)는 특히 나 같은 사람이 프로덕션 환경의 파일에 쓸 수 없다는 것을 알게된다면, DB에 대신 글을 쓸 수 있기 때문에 좋다. 또한 Elmah는 예외 로깅에 더 적합하며 이벤트를 기반으로 로깅 할 수 있기 때문에 시원합니다. 내 프로젝트에서 나는 log4net과 Elmah를 모두 배포한다.

0

db의 데이터 변경을 감사하는 경우 관련 테이블에서 트리거를 사용할 수있다.

dotNet 앱에 로그인하려면 로깅 정보를 쓰려면 TraceSource를 사용하고 db에 쓰려면 사용자 정의 TraceListener를 사용하십시오. 정말로 기본 클래스 라이브러리를 넘어서는 프레임 워크가 필요 없습니다.

+0

감사합니다 크리스틴,하지만 우리는 "가격 os 제품은 10 % 할인되었습니다"와 같은 비즈니스 조치를 기록해야합니다. – Ewerton

관련 문제