Dockerでログローテーションするとログ出力が止まる

ghcr.io/codelibs/fess のDockerイメージを使っています。

デフォルトの状態だと、稼働してから翌日に log4j でログのローテーションが発生すると、コンテナのログ出力が止まってしまうため、run.sh をカスタマイズしています。

#   "tail -qf" を、”tail -qF" (--follow=name --retry) に置換
sed -i -e 's/tail -qf/tail -qF/g' /usr/share/fess/run.sh

(14.6.1 未満は、-f から -F に置換)

フォークしてみました。

こちら、取り込んで頂くことは出来ますか?

ありがとうございます。
githubのコードの方には反映しました。
Dockerイメージの方は、14.7.1をビルドしていかないと作れないので、今週のどこかくらいで対応しようと思います。

1 Like

対応ありがとうございます!
(fork は削除しました)

すみません。
Docker + fluentd (logging driver) で、Fess 14.7 をテストしていて、
ログローテート時の tail -qF のエラーメッセージが、json 形式ではない出力で紛れていました。

tail -qF ~~~ 2> /dev/null & で捨てるか、
または、print_log INFO に流せる?

質問ですが、audit.log と、fess-urls.log は、意図的に tail から除外されたのでしょうか?

エラーを捨てておきました。

audit.log と、fess-urls.log は、意図的に tail から除外されたのでしょうか?

他のログと異なり、LTSVで出力しているので、除外しました。
audit.logの方はそのうち考えたいところですが、現時点では、
対応する作業量に対しての効果が見合わないので、
良い方法が思いついたら対応するかもしれませんが…。

ログファイルを見ると、元の形式のままでした。
事情理解できました。ありがとうございます。

audit.log は Windows連携していると、たまに問題を見つけることがあるので、対応策を探ってみます。

検討してみた結果、ActivityHelperを整理すれば、audit.logは何とかできそうな気もしてきたので、次のバージョンでは対応することを考えようと思います。

1 Like

ありがたいです!

14.6.1 までと同じ情報が拾えると、Docker版を安心してアップグレードできます。