Linux上でLogbackを使用してサービスログに書き込むSpring-Bootアプリケーションがあります。ログバックは、ファイル(account-service.log)に書き込み、ファイルを10.5MBで回転させ、最後に8番目の回転でファイルを削除するように設定されています。これがデフォルト設定です。アプリケーションでログバックログを開いたままで、ディスクから削除しないでください
作成した最初のログファイルは、10.5MBのサイズ制限(10.5MBで回転します)を超えて書き込まれています。したがって、ファイルが8番目のファイルになるまでサイズが増加してから、削除されようとします。この時点で、ファイルサイズは84MB(10.5MB * 8)です。 You can see here the file increasing in size
ことの主な問題は、OSが、理由Logbackの、ファイルが、アプリケーション以降を削除しようとまだ開いて、それを維持し、その後、ファイルシステムが削除されたファイルが表示されないということである(コマンドと同じようを見つけますか、 du)、システムは依然としてディスクに割り当てられた領域を保持します。また、ファイルはまだ書き込まれているので、より多くのディスク容量を占めています。私は走ったsudo lsof | grepがこのファイルが完全に削除されていないことを確認するためにを削除しました。
興味深いことに、その最初のファイルが属するグループは、残りのグループとは異なります。最初のファイルはグループルートを持ち、残りのファイルはaccount-serviceの正しいグループ名を持っています。これは、アプリケーションがファイルを閉じることができないが、わからない理由である可能性があります。
Logback依存性は、私の春ブーツポンポンから来ている:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
以降のログファイルが削除されますOKです10.5 MBの制限過去に書き込まれません。
誰もこの問題を見たことがありますか、それを解決する方法が見つかりましたか?
これは私がそのコマンドから返すものです。 ** ubuntu @ ip-10-227-xx-xx:/ var/account-service $ ps -efw | grepアカウントサービス** 'account + 1725 1 5 00:25? 00:00:38/opt/java/oracle/jdk -jar /var/account-service/account-service-1.0.13-365735-SNAPSHOT.jar --server.tomcat.basedir =/var/account-service/tomcat --spring.profiles.active = int ubuntu 3271 2752 0 00:37 pts/0 00:00:00 grep --color = auto account-service' –