2012-10-01 4 views
0

예외가 발생하는 경우 오류 메시지를 로그 파일에 저장하는 C# 클래스가 있습니다. 이제 응용 프로그램 (내 경우에는 웹 사이트) 파일이 들어있는 동일한 폴더에 로그 파일을 저장하려고합니다. Environment.CurrentDirectory를 사용하여 시도했지만 웹 사이트 경로를 검색하지 않습니다. 웹 사이트의 디렉토리를 가리키는 상대 파일 경로를 사용하려면 어떻게해야합니까?오류 로깅 및 상대 파일 경로

다음은 클래스 코드입니다. 보시다시피 경로는 절대적입니다. 내 웹 사이트 디렉토리의 폴더를 가리키는 상대 파일 경로로 변경하고 싶습니다.

답변

3

일반적으로 Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)은 현재 어셈블리가있는 경로를 반환합니다.

string logName = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "MyLogFile.log"); 

을 사용하여 로그 파일 이름을 만들 수 있습니다.

실제로 응용 프로그램의 폴더에 기록하는 것이 OS에서 허용되는지 여부는 질문입니다. 또한 웹 응용 프로그램의 경우 로그 파일은 이며 웹 브라우저을 통해 공개적으로 볼 수 있습니다. 웹 사이트 사용을 위해

2

:

string path = AppDomain.CurrentDomain.BaseDirectory + "anotherFolder"; 

이 프로젝트의 내부 응용 프로그램의 기본 디렉토리 및 폴더를 둘 것 : 또한이 솔루션을 시도 할 수 있습니다

HttpContext.Current.Server.MapPath("~/"); 
+0

정말 고마워요 :))) 정확하게 필요한 것입니다 :) – Matthew

+0

웹 응용 프로그램의 디렉토리에 로그 파일을 쓰는 것은 잠재적으로 위험 할 수 있습니다. 내 대답을 보라. –

+0

고마워 Thorsten :) 나는 그것을 몰랐다. SQL 서버에서 제공하는 디버깅 오류 페이지를 사용자 정의 오류 페이지로 바꾸고 관리자 만 볼 수있는 로그 파일에 오류 메시지를 저장하는 것이었기 때문에 그대로 두는 것이 좋습니다. – Matthew