xml 파일에서 log4net을 구성하려고합니다. 이 파일을 서비스의 루트 폴더에 저장했습니다. 속성 Copy to Output Directory
은 Copy Always
으로 설정되어 있으며 정상적으로 작동합니다. 파일이 복사됩니다.Azure Serivce Fabric이있는 Log4net 사용자 지정 구성 파일 배포
log4net.Config.XmlConfigurator.ConfigureAndWatch
과 함께이 파일을로드하려고하면 문제가 시작됩니다. 작업 디렉토리에 있지 않지만 코드가있는 다른 디렉토리에 있습니다.
log4net에 대한 구성을 app.config에 지정하고 싶지 않습니다. 그것은 지금 당장은 효과가 없으며 이것을 알아 내는데 많은 시간을 할애 할 것입니다.
특정 서비스에 일부 메타 데이터 (파일)를 추가 한 다음 액세스하는 방법이 있습니까?
일반적인 방법으로 파일을 루트 디렉토리에 저장하는 방법이 있습니까? 예를 들어 Settings.xml에 배치 할 수없는 일부 바이너리 데이터에 액세스하려는 경우 어떻게해야합니까?
UPDATE
는 Copy Always
자신의 속성을 설정 파일을 복사하는 것입니다 수행해야 할 유일한 것은 같은데. 따라서 실제 문제는 실제 바이너리가있는 디렉토리가 아니라 작업 디렉토리로 C:\SfDevCluster\[..]\work
이 있다는 것입니다.
Vaclav Turecek [쓴] (http://stackoverflow.com/questions/36786078/where-how-does-one-instantiate-serviceinitializationparameters-in-an-azure-ser) 최신 버전의 최신 SF'ServiceInitializationParameters'는 서비스의'Context'로 대체됩니다. 즉, 서비스를 만들기 전에 호스트 프로세스에서 로거를 인스턴스화하는 데 사용할 수 없습니다. 그래서 이것이 나를위한 해결책이 아닙니다. 또는 나는 무엇인가 놓치고 있냐? – cassandrad
컨텍스트는 서비스 인스턴스를 생성하는 Func의 Program.Main에서 로거를 초기화하는 데 사용할 수 있도록하려는 경우 서비스의 생성자 매개 변수입니다. – LoekD
괜찮아, 알았다. 'Settings.xml'을 가져 와서 경로를 얻은 다음, 내 사용자 정의 구성 파일의 이름을 추가해야합니다. 감사합니다. 하지만 서비스를 인스턴스화하기 전에 무언가를 기록하고 싶다면 컨텍스트에 액세스 할 수 없기 때문에 구성을 가져올 수있는 가능성이 없습니다. – cassandrad