asp.net 응용 프로그램의 로그 파일을 어디에 두어야 합니까?
-
08-06-2019 - |
문제
우리는 자체 로깅 모듈을 작성한 ASP.NET 응용 프로그램을 가지고 있습니다.
제 질문은 로그 파일을 작성할 표준 장소가 어디입니까?입니다.즉.웹사이트는 익명의 사용자 ID(예:IIS7의 IUSR) 그리고 쓰기 권한이 있는 곳이 필요합니다.
건배,
해결책
프로젝트 루트의 App_Data 폴더입니다.웹 요청에는 제공되지 않습니다.그래서 다른 사람들이 그것을 엿볼 수 없습니다.
다른 팁
로그 파일을 별도의 디스크에 저장하는 것이 좋습니다. 하지만 웹 사이트와 동일한 디스크에 읽고 쓰지 않도록 약간의 성능 향상을 얻을 수 있습니다.로그 파일을 별도의 디스크에 저장할 수 없다면 원하는 폴더를 선택하면 됩니다.
어떤 경우든 "네트워크 서비스" 계정에 원하는 폴더에 대한 "수정" 권한을 부여해야 합니다.
반면에 데이터베이스에 액세스할 수 있는 경우 해당 데이터베이스에 정보를 기록하십시오.하드 드라이브에 액세스하는 것보다 훨씬 빠르며 공개적으로 사용할 수 없습니다.또한 매우 쉽게 데이터를 보고할 수 있습니다.
저는 폴더(특히 가상 디렉터리 홈 폴더 외부)에 대한 권한을 수정할 수 있는 위치에 있지 않으며 아직 App_Data 폴더도 없기 때문에 사용하기가 조금 주저됩니다.
그래서 지금은 CommonApplicationData 폴더를 사용하겠습니다.
- Vista/Server 2008에서는 C:\ProgramData\입니다.
- XP/Server 2003에서는 C:\Documents and Settings\All Users\Application Data\입니다.
저는 폴더(특히 가상 디렉터리 홈 폴더 외부)에 대한 권한을 수정할 수 있는 위치에 있지 않으며 아직 App_Data 폴더도 없기 때문에 사용하기가 조금 주저됩니다.
웹사이트가 있다면 분명히 어딘가에 폴더가 있을 것입니다.(웹 연결이 아닌) 하위 폴더를 추가할 수 없나요?로그를 전역 공유 폴더에 버리는 것보다 로그를 저장하는 것이 더 적절한 장소인 것 같습니다.
app_data를 푸시하는 것이 가장 좋은 아이디어입니다. 프로젝트를 게시할 때 "게시하기 전에 기존 파일 모두 삭제" 옵션을 선택하면 폴더의 현재 데이터가 사라집니다.해결 방법은 app_data 폴더 삭제를 건너뛰는 것입니다.
로깅을 수행하는 또 다른 옵션은 Log4net과 같은 기존 프레임워크를 사용하는 것입니다.