From 314f8818a6ba2b1431d911f850d3b857ba03c40e Mon Sep 17 00:00:00 2001 From: aidewoode Date: Thu, 21 Dec 2023 13:09:41 +0800 Subject: [PATCH] Configure log for media listener --- Dockerfile | 5 ++++- lib/daemons/media_listener_service | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 24364a4a..d2cf6e65 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ FROM base AS builder ENV RAILS_ENV production ENV NODE_ENV production -# build for musl-libc, not glibc (see https://github.com/sparklemotion/nokogiri/issues/2075, https://github.com/rubygems/rubygems/issues/3174) +# Build for musl-libc, not glibc (see https://github.com/sparklemotion/nokogiri/issues/2075, https://github.com/rubygems/rubygems/issues/3174) ENV BUNDLE_FORCE_RUBY_PLATFORM 1 COPY --from=node /usr/local/bin/node /usr/local/bin/node @@ -56,6 +56,9 @@ RUN addgroup -g 1000 -S app && adduser -u 1000 -S app -G app COPY --from=builder --chown=app:app /usr/local/bundle/ /usr/local/bundle/ COPY --from=builder --chown=app:app /app/ /app/ +# Forwards media listener logs to stdout so they can be captured in docker logs. +RUN ln -sf /dev/stdout /app/log/media_listener_production.log + USER app ENTRYPOINT ["docker/entrypoint.sh"] diff --git a/lib/daemons/media_listener_service b/lib/daemons/media_listener_service index eab93a4f..d8b2084f 100755 --- a/lib/daemons/media_listener_service +++ b/lib/daemons/media_listener_service @@ -25,7 +25,10 @@ daemon_options = { dir_mode: :normal, dir: options[:dir], multiple: false, - shush: ENV["RAILS_ENV"] == "test" + shush: ENV["RAILS_ENV"] == "test", + log_output: true, + log_dir: File.join(ROOT_DIR, "log"), + output_logfilename: "media_listener_#{ENV["RAILS_ENV"]}.log" } Daemons.run_proc(options[:name], daemon_options) do @@ -33,6 +36,9 @@ Daemons.run_proc(options[:name], daemon_options) do require "./config/environment" + listener_log_level = (ENV["RAILS_ENV"] == "production") ? :info : :debug + Listen.logger = ::Logger.new($stdout, level: ENV.fetch("RAILS_LOG_LEVEL", listener_log_level)) + supported_formates = MediaFile::SUPPORTED_FORMATS.map { |formate| %r{\.#{formate}$} } listener = Listen.to(File.expand_path(Setting.media_path), only: supported_formates, latency: 5, wait_for_delay: 10) do |modified, added, removed|