안녕하세요 저는 WCF의 IIS 호스팅 서비스에서 Log4Net을 사용하려고하지만 모든 데이터를 기록하지 않습니다. Log4Net을 사용하여 WCF 서비스에 로그인하는 사람이 있습니까?W4F의 Log4Net이 작동하지 않습니다.
답변
자체 호스팅 된 WCF 응용 프로그램 내에서 내 프로젝트에서 log4net을 사용하고 있습니다.
설정 단계는 매우 간단합니다.
- 추가 참조가 우리의 콘솔 서비스 호스트 프로젝트에 log4net.dll하는 (우리의 응용 프로그램의 진입 점)
위 프로젝트의 AssemblyInfo.cs 파일에 다음 줄을 (추가하는 사용자 지정 log4net 설정 파일을 지정할 수 있습니다 ., 어떤 log4net 업데이트가 빠른 "보고"하지만 것이다 아마 조금 더러운 ..)
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
프로젝트를 콘솔에 log4net.config 파일을 추가하고이 (출력 디렉토리에 파일 속성을 복사 " 출력 디렉토리로 복사 "
private static readonly log4net.ILog Logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
로그인이 필요 :
당신이- 로깅이 필요한 경우)
- 하면 로깅을 필요로하는 클래스의 개인 정적 구성원으로 로거를 선언 모든 프로젝트에 log4net.dll 참조를 추가합니다
Logger.Info("Starting console service host");
이 문서의 페이지 retty 많이 그것을 커버 : http://haacked.com/archive/2005/03/07/ConfiguringLog4NetForWebApplications.aspx
log4net 구성 파일에 대한 올바른 디렉토리를 확인하지 않기 때문에 log4net을 구성하는 어셈블리 특성을 사용하여 작동하지 않습니다. 어쩌면 당신은 설정 파일을 지정할 때 상대 경로를 사용하려고 시도 할 수 있지만 제안 된 해결책 중 하나를 사용하는 것이 더 쉽습니다. here. I는 MSMQ에 log4net 사용하고
내가 의존성 주입해서 Ninject를 사용 IIS 7에서 호스팅 WCF 서비스를 활성화 을 Ninject.Extensions.Wcf, Ninject.Extensions.Logging.log4net NuGet 패키지를 설치 log4net 구성 부를 첨가 Web.config 파일.
사람들이 Global.asax에 log4net 초기화 코드를 추가하는 것을 제안했지만, 이는 내가 알 수있는 한 MSMQ 활성화 서비스에 대해서는 작동하지 않습니다. 그러나 Ninject는 웹 응용 프로그램 시작시 초기화 코드를 실행할 수있는 WebActivator 패키지를 설치합니다. Ninject는 App_Start \ NinjectWebCommon.cs에 코드를 삽입합니다. log4net을 구성하려면 Start 메소드에 코드를 추가해야합니다. 광산은 다음과 같습니다
public static void Start()
{
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestHttpModule));
DynamicModuleUtility.RegisterModule(typeof(NinjectHttpModule));
// configure log4net
XmlConfigurator.Configure();
bootstrapper.Initialize(CreateKernel);
}
입니다 조심해야 할 또 다른 것은 당신이 당신의 WCF 엔드 포인트에 별도의 어셈블리에 정의 된 사용자 지정 WCF ServiceHostFactory
이있는 경우 (예를 들어 DRY 유지) 후 공장입니다 정의 된 어셈블리를 log4net의 관점에서 "루트"어셈블리와 해당 어셈블리에서 XmlConfigurator
속성을 선언해야합니다.
이 FAQ http://logging.apache.org/log4net/release/faq.html#trouble-webapp-stops-logging 및 링크 된 의견은 log4net 가능한 빨리 초기화하고 싶어 설명
- 1. Log4Net이 작동하지 않습니다.
- 2. Log4Net이 MaxFileSize를 롤백하지 않습니다.
- 3. 릴리스 모드에서 Log4net이 로그하지 않습니다.
- 4. Log4net이 때때로 서버에 로그인하지 않습니다.
- 5. log4net이 죽었습니까?
- 6. log4net이 .net 1.1과 .net 3.5가 혼합되어 로깅되지 않습니다.
- 7. Log4net이 데이터베이스에 삽입되지 않습니까?
- 8. rollingstyle을 날짜로 설정하면 log4net이 로그 파일을 롤오버하지 않습니다
- 9. log4net이 참조 된 프로젝트 파일에 대한 로그 파일을 만들지 않습니다.
- 10. AlarmManager가 작동하지 않습니다. 서비스가 작동하지 않습니다.
- 11. Log4Net이 404 오류를 무시하도록 어떻게 설정합니까?
- 12. log4net이 로깅을 중지하면 이벤트를 수신하는 방법
- 13. Log4net이 올바르게 구성되지 않은 경우의 예외
- 14. Log4Net이 Windows 서비스에서 느리게 실행되는 이유는 무엇입니까?
- 15. Log4net이 로깅을 중지 할 때 알림
- 16. log4net이 내 WCF 유닛 테스트를 종료합니까?
- 17. jQuery가 Ajax 호출에서 작동하지 않습니다. 스크롤이 작동하지 않습니다.
- 18. Jpmodal이 UpdatePanel에서 작동하지 않습니다.
- 19. BindingSource.Filter가 '! ='와 작동하지 않습니다.
- 20. unique_array가 작동하지 않습니다.
- 21. Uploadify가 작동하지 않습니다.
- 22. 중단 점이 작동하지 않습니다.
- 23. JQuery가 전혀 작동하지 않습니다.
- 24. Google지도가 작동하지 않습니다.
- 25. SQLDatasource CommandTimeout이 작동하지 않습니다.
- 26. setPropertiesToFetch가 예상대로 작동하지 않습니다.
- 27. Java 주석이 작동하지 않습니다.
- 28. MKMapView : setRegion이 작동하지 않습니다!
- 29. ActiveX가 작동하지 않습니다.
- 30. 업로드중인 이미지가 작동하지 않습니다.
나열된 오류가 있는지 확인하기 위해 configuration..check eventvwr을 설정 한 방법으로 함께 할 수있는 뭔가가 있어야합니다 ..lof4net 설정을 지정한 곳도 있습니다. – Mahesh