2012-06-12 6 views
4

유창한 구성에서 약간의 모호한 오류가 발생하여 문제가 있습니다. 로깅 솔루션을 설정하면이 문제에 대해 제로가 될 것입니다. NLog를 사용하고 싶습니다. Common.Logging 2.0과 NHibernate.IInterfaceLogger를 사용하여 실행시켜야한다는 것을 이해합니다. 조각들을 함께 모으는 방법을 모르겠습니다. 내 시스템은 양파 아키텍처를 기반으로합니다. NLog에 대한 로깅 서비스를 설정하고이를위한 인터페이스가 있지만,이 모든 것을 함께 묶어야하는 곳에서는 혼란 스럽습니다. 내 유창한 NHibernate 구성이 데이터 프로젝트에 존재합니다. 나는이 모든 것을 함께 묶어두기를 원할 것입니다.Fluent NHibernate and NLog

이것에 대한 의견은 정말 좋을 것입니다! 나는 조금 길을 잃었다!

+1

NLog에 대해 확실하지 않습니다. Log4net을 참조에 추가하고 구성하는 즉시. NHibernate는 그것을 사용하는 것을 좋아할 것이다. log4net로 이동하십시오. 바람직한 로거 IMO이어야합니다. – DarthVader

+1

log4net 지원은 NH에 포함되어 있지만 많은 사람들이 구성하는 데 많은 어려움을 겪고 있습니다. NLog는 아래 답변을 기반으로 훨씬 간단 해 보입니다 (아직 시도하지 않았습니다 ... 아직). –

답변

6

NHibernate.NLog 낫겟 패키지. 나는 지금 그것을 프로젝트에서 사용한다.

완벽을 기하기 위해 또는 패키지가 사라지거나 사용자가 너겟을 사용하지 않는 경우. 당신은 당신의 FluentConfiguration이 추가 :

.ExposeConfiguration(c => 
    { 
     c.SetProperty(@"nhibernate-logger", @"Microfilm.Core.NLogFactory, Microfilm.Core"); 
    }) 

IInternalLogger를 구현하는 클래스를 반환하는 ILoggerFactory를 구현합니다. IInternalLogger 메서드에 포함 할 내용은 매우 간단합니다. 당신은 NHibernate logger 호출을 NLog 호출에 브리징하는 것뿐입니다.

+0

하! 그냥 발견! 나는 그것을 지금 설치하고있다! –

+0

Fluent Configuration으로 테스트 했습니까? 그것은 나를 위해 작동하지 않으며'NHibernate.LoggerProvider'의 소스 코드는 앱 설정에서 로거 팩토리 클래스를 독점적으로 얻는다는 것을 보여줍니다. NHibernate 설정으로 되돌아 가지 않기 때문에'config.SetProperty'가 작동하지 않을 수 있습니다. –

+0

'.ExposeConfiguration' *에 대한 비트는 * FluentNHibernate입니다. 나는 FluentNHibernate v1.3과 NHibernate 3.2를 사용하고있다. – hometoast