2017-10-03 4 views
0

Azure 웹 작업을 사용하여 특정 작업을 예약하고 있습니다. 웹 작업은 Azure 웹 응용 프로그램에 성공적으로 배포되지만 로그 파일을 저장해야하는 app_data 폴더의 경로를 상대적으로 결정할 수 없습니다. (웹 작업 D에 위치 : 홈 \ 사이트 \ wwwroot에 \ App_Data 작업이 트리거 \ \ \ webjobname \)Azure 웹 작업 및 log4net

다음 (절대) 경로가 작동 : 다음 경로가 작동하지 않습니다

<file value="d:\\home\\site\\wwwroot\\App_Data\\Logs\\WebJobLog.txt" /> 

:

<file value="../../App_Data/Logs/WebJobLog.txt" /> 
<file value="/App_Data/Logs/WebJobLog.txt" /> 
<file value="~/App_Data/Logs/WebJobLog.txt" /> 

누구나 파일 경로를 상대적으로 설정하는 방법을 알고 있습니까?

+0

왜이 경로가 마음에 들지 않습니까? – 4c74356b41

답변

1

, 당신은 당신의 경로를 지정할 수 있습니다 :

<file value="App_Data\\Logs\\WebJobLog.log" /> 

WebJobs를 들어, webjob이에서 실행 기본적으로 임시 디렉토리 (예 : %TEMP%\jobs\{job type}\{job name}\{random name})에 복사 할 것이지만 로그 파일이 임시 폴더 아래를 가리 키도록하십시오. 자세한 내용은 WebJob Working Directory을 참조하십시오.

요구 사항에 따라 log4net.Util.PatternString을 활용하고 env 변환 패턴을 사용하여 David Ebbo가 제안한 환경 변수 (WEBROOT_PATH)를 검색 할 수 있습니다.

<file type="log4net.Util.PatternString" value="%env{WEBROOT_PATH}\\App_Data\\Logs\\WebJobLog.log" /> 

또한 프로그래밍 방식 FileAppender를 만들 수 있습니다,이 issue를 참조 할 수 이러한 접근 방식 : 당신은 다음과 같이 경로를 변경해야합니다. 또한, 웹 잡의에 대한 빌드 로깅을 확인할 수 있습니다.

1

WebJob이 배포되는 위치에 대한 상대적인 가정을 하드 코딩하지 않도록합니다.

당신의 목표는 APP_DATA 폴더에 도착하는 경우, 당신은 d:\home\site\wwwroot를 가리키는 WEBROOT_PATH 환경 변수,보고, 다음 APP_DATA와 결합 할 수 있습니다. 당신의 목적을 달성하기 위해 다음과 같이 일반적으로