2017-08-30 14 views
0

REST API用に作成された簡単なスプリングブートアプリケーションがあります。私は、ログにファイルにログバックを使用しようとしています。それはアプリケーションが私のWindowsマシン上でEclipse内に配置され、すべてのログ/ログファイルエンドポイントを見ることができるときにうまく動作します。SpringブートアプリケーションがLinuxにデプロイされているときのログファイルエンドポイントのエラー404

同じアプリケーションをLinuxボックスにデプロイすると、ログファイルが作成され、期待通りに更新されますが、ブラウザでログファイルにアクセスしようとすると、同じエンドポイント(/ログファイル)に404が表示されます。

すべてのヘルプは非常に私の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 

のように見えます

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> 

以下のように私のlogback設定がある

を理解されるであろうログファイルには、例外が記録されます。

ここで
: 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 

あなたの最小限の例や、あなたの質問内の設定の両方でlogging.fileプロパティの値の末尾のスペースがあります私の最小限の例 https://github.com/spring-projects/spring-boot/files/1482233/test_api.zip

+0

なぜあなたの説明だけでこのことが起こっているのかは言うまでもありません。 Linux上で実行されるSpring Bootビルドの一部であるログ記録テストは、あなたの環境に特有のものだと思います。ログファイルのユーザー/ファイルのアクセス許可を確認するのが適切な場合があります。問題を示す[最小、完全で検証可能な例](https://stackoverflow.com/help/mcve)を提供することをお勧めしません。 –

+0

@PhilWebbご返信ありがとうございます。私はすべてのアクセス許可をチェックして、それらはすべてOKです(777) – Ashutosh

+0

私はファイルのアクセス許可などをチェックして、それらはすべて見栄えが良いです。上記のログから抜粋を追加しました。 – Ashutosh

答えて

1

です。質問の値は"log/vixenapi.log "であり、それは"log/vixenapi.log"である必要があります。

org.springframework.boot.actuate.endpoint.mvcのデバッグログを有効にすることで問題を確認できます。ログファイルは、それが確認されたパスが含まれて存在しない場合LogFileMvcEndpointは、メッセージをログに記録します。

2017-11-17 14:40:24.801 DEBUG 30140 --- [nio-8080-exec-1] o.s.b.a.endpoint.mvc.LogFileMvcEndpoint : Log file 'file [/Users/awilkinson/Downloads/test_api/log/test.log ]' does not exist 

は、パスの末尾にスペースに注意してください。

+0

ありがとうございます。私は今、馬鹿のように感じます。私はそのスペースを見ましたが、Eclipseが私のためにそれをトリミングしていたので、それをほとんど考えていませんでした。これは修正されました。デバッグロギングをどのように切り替えますか?どうもありがとう。 – Ashutosh

+0

'application.properties'に' logging.level.org.springframework.boot.actuate.endpoint.mvc = DEBUG'を追加してください。 –

+0

多くのありがとうございます。あなたは本当の星です。 – Ashutosh

関連する問題