본문 바로가기

트러블슈팅

Logback의 filepath 설정으로 인한 에러. ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS] - Failed to create parent directories

문제

로컬에서 프로젝트를 받아서 실행하려고 하니 아래와 같은 에러가 나왔다.

java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS] - Failed to create parent directories for [/home/www/logs/project/access/access.log]

ERROR in ch.qos.logback.core.rolling.RollingFileAppender[ACCESS] - openFile(/home/www/logs/project/access/access.log,true) call failed. java.io.FileNotFoundException: /home/www/logs/project/access/access.log (No such file or directory)

ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - Failed to create parent directories for [/home/www/logs/project/application/project.log]

ERROR in ch.qos.logback.core.rolling.RollingFileAppender[FILE] - openFile(/home/www/logs/project/application/project.log,true) call failed. java.io.FileNotFoundException: /home/www/logs/project/application/project.log (No such file or directory)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:169)
	at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80)
	at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:118)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:306)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:281)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:239)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:216)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
	at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:80)
	at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:53)
	at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:345)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:308)
...

 

원인

filepath로 나온 것을 보아, Logback의 filepath 문제라고 생각했다.

applicaiton-dev.yml의 logging을 보면 file에 로그 파일 path를 설정하는 path 부분이 있다. 

 

프로젝트 터미널에서 home에 직접 www 폴더를 생성하려고 해도 루트 권한이 없기 떄문에 Operation not supported 에러가 난다.

해결

루트 권한이 필요없는 tmp 밑에 logs라는 폴더를 Logback의 filepath로 설정했다.

home과 다르게 tmp는 폴더를 생성할 수 있는 것을 확인할 수 있다.

Logback의 설정을 아래와 같이 변경하여 문제를 해결하였다.

 

참고 자료

https://mizzo-dev.tistory.com/entry/Logback-%EA%B2%BD%EB%A1%9C-%EC%84%A4%EC%A0%95-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0-ERROR-Failed-to-create-parent-directories

 

[Logback 경로 설정 문제 해결] ERROR - Failed to create parent directories

Windows 환경에서 설정해둔 Spring boot 프로젝트를 Mac OS에서 그대로 실행시키는데 아래와 같은 문제가 발생했다. java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logback.core.rolling.Rol

mizzo-dev.tistory.com