2012-07-02 2 views
0

내 웹 응용 프로그램 내에서의 log4j 로그 파일을 만들 수 없습니다, 그리고 내가 사용하고있는 항아리 그래서 다음, 생성 된 로그 파일이 내 웹 응용 프로그램 내에서 할 것을 권장합니다내가 내 로깅 라이브러리로 log4j를 사용하고

<dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.6.4</version> 
    </dependency> 


    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.6.4</version> 
    </dependency> 

log4j.rootLogger=DEBUG, stdout, R 

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 

# Pattern to output the caller's file name and line number. 
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n 

log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=mylog.log 

log4j.appender.R.MaxFileSize=10000KB 

log4j.appender.R.MaxBackupIndex=3 

log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 

# Control/Limit integrated frameworks logging messages 
log4j.logger.org.springframework=ERROR 

문제 :

와 다음은 log4j 구성되어 내가 log4j.appender.R.File=${user.home}/mylog.log 파일이 아무런 문제없이 성공적으로 생성되지만 같은 파일 시스템 경로를 사용할 때 상대를 사용하려고 할 때 같은 경로 : log4j.appender.R.File=mylog.log 파일이 만들어지지 않습니다.

수정 방법을 알려주십시오.

+1

응용 프로그램은 실행중인 디렉토리에 쓸 수있는 권한이 없습니다. 이것은 일반적으로 좋은 일입니다. –

답변

3

웹 응용 프로그램의 현재 작업 디렉토리 웹 것을 언급 한 이후 컨테이너 루트와 비슷한 TOMCAT_HOME. 따라서 로그 파일 경로는 웹 컨테이너가 아닌 웹 컨테이너에 상대적입니다.

또한 대부분의 웹 컨테이너는 파일을 웹 응용 프로그램 디렉토리에 기록하지 못하도록 제한합니다. 일부 구성이있을 수 있습니다 - 확실하지 않습니다.

1

현재 작업 디렉토리의 사용 권한을 확인하십시오. Java 프로세스를 실행하는 사용자에게 읽기 및 쓰기 액세스 권한이 있는지 확인하십시오.

는 작업 디렉토리를 결정하는 웹 애플리케이션 컨텍스트 내 클래스에서이 프로그램을 실행하려면 (예 : Servlet 또는 ServletContextListener) :

System.out.println("Working Directory = " + System.getProperty("user.dir")); 
관련 문제