2010-06-19 2 views
1

빨리 속도를 높이려고.NLog. 싱글 톤 및 호출 클래스/메서드/스레드

이 질문은 ..

내 의도는 ... 전체 응용 프로그램에 NLog 사용할 수 있도록 싱글 톤 클래스를 가지고 있었다 이것은 올바른 방법입니다.

로그에 항목의 클래스, 메소드, 스레드 등을 어떻게 기록합니까?

답변

4

당신의 싱글 톤은 무엇입니까 은 정확히입니까?

NLog (및 log4j 등)와 같은 라이브러리의 장점 중 하나는 사용자가 로그 할 때 관련 클래스 로거와 함께 로깅한다는 것입니다. 그러면 로깅을 적절히 조정할 수 있습니다. 단 하나의 Logger 인스턴스가있는 싱글 톤이 있다면이 이점을 즉시 잃게됩니다. 각 클래스마다 고유 한 로거가있는 설명서에 나와있는 기술을 사용하는 것이 좋습니다.

클래스 이름 등을 방출하는 방법에 대해서는 {callsite}{threadid}의 많은 옵션이있는 문서의 layout renderers 페이지를 살펴보세요.

+0

당신은 로그인하려고하는 각 클래스에서 Nlog의 인스턴스를 만듭니다. 그러면 어떤 클래스에서 호출되는지 알 수 있습니까? 싱글 톤은 한 번만 인스턴스화된다는 것을 의미하지만 ... 나는 그것을 사용하는 방법에 대해 혼란스러워했습니다. ... – Adam

+0

사용하려는 각 클래스에'Logger'의 인스턴스를 만듭니다. 예 ... 그 다음 로거를 통해 로그인하십시오. 네, 더 많은 인스턴스를 생성하게 될 것이지만 세분화 된 구성의 이점이 있습니다. 그것은 당신이 빌드하는'Logger'의 각 인스턴스에 대해 전체 어셈블리를 개별적으로로드 할 것 같지 않습니다 ... –

+0

Jon .. 나는 당신의 대답이 매우 도움이된다고 생각합니다. 빠르게 속도를 높이는 것은 실망 스럽습니다. 렌더러 페이지가 내 문제를 해결했습니다. 문제가 ... 하지만 모든 클래스에서 별도의 로그 인스턴스를 생성하여 로그 ... 내가 가질 수있는 지느러미 나뭇결은 무엇입니까? 기본적으로 특정 클래스에 대한 로깅을 전환 할 수 있다고 말하고 있습니까? 다른 이점도 있습니다. 또한 .. 당신이 매우 도움이되고있는 것을보고 .. 단일성을 가지고 있거나 PC에 3 가지 응용 프로그램이있을 수 있습니다. 로그 파일에 보내지 않으면 .. 기록하고 싶습니다. 어떤 방법으로 저장합니까? 그들 .. 그리고 어떤 뷰어 로그를 통해 웨이드하는 데 사용 하시겠습니까 ??? – Adam