2013-05-23 3 views
3

Windows에 로그 파일을 저장할 위치가 어디 있는지 궁금합니다. 웹 스타트 또는 애플릿 응용 프로그램이 있다고 가정 해 봅시다. 따라서 설치 디렉토리가없는 곳이 실제로 없습니다. 그래서 그러한 조건이 주어지면, 프로그램이 작성한 로그 파일을 어디에서 침입하지 않고 어디에 저장해야합니까? 아니면 모든 데이터를 볼 수있는 많은 쓰레기를 버려야합니다.로그 파일 (windows)의 위치가 좋음

나는 전에 이와 같은 일을 해 본 적이 없지만 지금은 매우 궁금해서 정말 아이디어 나 제안을 듣고 싶습니다.

도움을 주신 모든 분들께 미리 감사드립니다.

QUICK 편집 : 모든 로깅 프레임 워크 또는 시스템을 Java 용으로 사용할 수 있다고 가정 해 보겠습니다. 사용자가 계정에 물건을 저장할 수있는 권한을 부여했다고 가정 해 봅시다 (일반 사용자 또는 기타 시스템 관련 없음) .

+2

사용중인 로깅 프레임 워크는 무엇입니까? – Ashish

+1

java-web-start의 애플릿 및 응용 프로그램은 보안 강화 권한 (즉, 코드 서명) 및 문제의 응용 프로그램에 대한 액세스 권한 상승을 요청하지 않고도 사용자의 파일 시스템에 액세스 할 수 있습니까? – thatidiotguy

+0

재미있는 질문이지만 궁극적으로 꽤 주관적입니다. 아마 다른 포럼에 대한 더 나은. – asteri

답변

4

보안 제한이없고 웹 스타트 또는 애플릿 응용 프로그램이 파일 시스템에 액세스 할 수있는 경우 $(user.home) 시스템 속성을 사용할 수 있습니다.

응용 프로그램이 로그 파일을 사용자 홈에 저장하고 운영 체제에 독립적 일 수 있습니다.

예를 들어 내가 Log4j를 사용하고이 내 log4j.property 파일의 구성입니다

log4j.appender.F.File=${user.home}/app.logs

당신은 당신이 아직이 시스템 속성을 가져오고 그것이이다 지정할 수있는 기본 자바 로깅을 사용하는 경우 로그 파일 위치.

하위 디렉토리에 로그를 저장하려는 경우 $(user.home) 뒤에 아무 위치 나 추가 할 수도 있습니다. 예를 들어

log4j.appender.F.File=${user.home}/logs/application.log 

개정 : 당신이 홈 디렉토리에 아무것도 저장하지 않으려면

, 당신은 널 (null)이 반환 될 때까지 위로 이동의 getParent를 사용하여 당신은 일단 루트 디렉토리를 얻을 수 루트 디렉토리에서 파일 시스템의 임의의 위치로 이동할 수 있습니다.

+0

나는 이것이 좋은 생각이라고 생각하지만,'$ (user.home)'에서 서브 디렉토리를 사용하는 것이 더 좋을 것이라고 생각한다. 그렇게하면 프로그램을 쉽게 찾을 수 있고 다른 프로그램은 프로그램을 손쉽게 찾을 수 있습니다. –

+0

@ tieTYT 덕분에, 나는 사용자와 절대적으로 동의합니다. 그 후 그의 선택의 어떤 위치라도 추가 할 수 있습니다 – Ashish

+0

하위 디렉토리를 숨겨진 폴더로 만들 수있는 방법이 있습니까? 그렇게하면 사용자가 다른 폴더를 찾기 위해 언제든지 사용자에게 뛰어 들지 않습니다. – Quillion

관련 문제