我有一個爲REST API編寫的簡單彈簧引導應用程序。我正在嘗試使用logback將日誌記錄到文件中。當應用程序在我的Windows機器上的eclipse中部署時,它可以正常工作,並且我可以在/ logfile端點上看到所有日誌。在Linux上部署彈簧引導應用程序時,日誌文件端點上的錯誤404
當我在Linux機器上部署相同的應用程序時,日誌文件按預期方式創建和更新,但是當我嘗試通過瀏覽器訪問日誌文件時,我在同一個端點(/ logfile)上獲得了404。
任何幫助將非常感激
我的logback配置如下圖
的logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="org.springframework.web" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</logger>
<logger name="api.controllers" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</logger>
</configuration>
我application.properties文件看起來像
server.contextPath=/api
#Configure Access Logs
server.tomcat.basedir=log
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%t %a "%r" %s (%D ms)
#configure other log
logging.file=log/vixenapi.log
logging.level.org.springframework.web=DEBUG
logging.level.org.springframework.boot.autoconfigure.logging=DEBUG
logging.level.org.hibernate=ERROR
#-------------------------------------
spring.jackson.serialization-inclusion=non_empty
#By Default include all properties. If a view property hasn't been set then it will be shown
spring.jackson.mapper.DEFAULT_VIEW_INCLUSION=true
日誌文件將例外記錄爲
: Before request [uri=/com.causeway.vixen.api/logfile;client=172.16.4.56]
2017-11-16 18:29:13.662 DEBUG 1552 --- [http-nio-8080-exec-10] o.s.web.servlet.DispatcherServlet : DispatcherServlet with name 'dispatcherServlet' processing GET request for [/com.causeway.vixen.api/logfile]
2017-11-16 18:29:13.662 DEBUG 1552 --- [http-nio-8080-exec-10] o.s.web.servlet.DispatcherServlet : Last-Modified value for [/com.causeway.vixen.api/logfile] is: -1
2017-11-16 18:29:13.663 WARN 1552 --- [http-nio-8080-exec-10] o.s.w.s.r.ResourceHttpRequestHandler : Locations list is empty. No resources will be served unless a custom ResourceResolver is configured as an alternative to PathResourceResolver.
2017-11-16 18:29:13.663 DEBUG 1552 --- [http-nio-8080-exec-10] o.s.web.servlet.DispatcherServlet : Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling
2017-11-16 18:29:13.663 DEBUG 1552 --- [http-nio-8080-exec-10] o.s.web.servlet.DispatcherServlet : Successfully completed request
2017-11-16 18:29:13.663 DEBUG 1552 --- [http-nio-8080-exec-10] o.s.w.f.CommonsRequestLoggingFilter : After request [uri=/com.causeway.vixen.api/logfile;client=172.16.4.56]
2017-11-16 18:29:13.663 DEBUG 1552 --- [http-nio-8080-exec-10] o.s.web.servlet.DispatcherServlet : DispatcherServlet with name 'dispatcherServlet' processing GET request for [/com.causeway.vixen.api/error]
2017-11-16 18:29:13.664 DEBUG 1552 --- [http-nio-8080-exec-10] s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /error
這是我的小例子, https://github.com/spring-projects/spring-boot/files/1482233/test_api.zip
這很難說,爲什麼這可能會從你的描述單獨發生。作爲Spring Boot構建一部分的日誌記錄測試在Linux上運行,所以我認爲這是特定於您的環境的事情。檢查日誌文件的用戶/文件權限可能是一個很好的開始。否則,我會建議提供[一個最小的,完整的和可驗證的示例](https://stackoverflow.com/help/mcve),顯示問題。 –
@PhilWebb感謝您的回覆。我已檢查所有權限,他們都沒問題(777) – Ashutosh
我檢查了文件權限等,他們都看起來不錯。我已經添加了上面日誌的摘錄。 – Ashutosh