문제

우리는 자체 로깅 모듈을 작성한 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 폴더도 없기 때문에 사용하기가 조금 주저됩니다.

웹사이트가 있다면 분명히 어딘가에 폴더가 있을 것입니다.(웹 연결이 아닌) 하위 폴더를 추가할 수 없나요?로그를 전역 공유 폴더에 버리는 것보다 로그를 저장하는 것이 더 적절한 장소인 것 같습니다.

Windows 이벤트 로그나 데이터베이스의 테이블에 기록할 수도 있습니다.사람들은 얼마나 자주 이벤트 로그를 보고 있나요?정기적으로 검사하는 경우 테이블에 작성하면 순서를 바꾸고 현재 기간의 마지막 X 이벤트만 표시하는 것이 쉽지 않으므로 보고가 훨씬 쉬워집니다.Windows 이벤트 로그를 통해 Windows 이벤트 로그를 쿼리할 수도 있습니다. 파워셸 또는 로그 파서.

app_data를 푸시하는 것이 가장 좋은 아이디어입니다. 프로젝트를 게시할 때 "게시하기 전에 기존 파일 모두 삭제" 옵션을 선택하면 폴더의 현재 데이터가 사라집니다.해결 방법은 app_data 폴더 삭제를 건너뛰는 것입니다.

로깅을 수행하는 또 다른 옵션은 Log4net과 같은 기존 프레임워크를 사용하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top