1

我在 Rails 应用程序中使用日志轮换,这似乎可以正常工作。但是,新的日志文件归root用户所有,而不是apps用户所有。该应用程序通过也使用apps用户的乘客运行。

是否可以让用户创建/拥有的新日志apps而不是root

我使用的配置production.rb如下:

# Use default logging formatter so that PID and timestamp are not suppressed.
config.log_formatter = ::Logger::Formatter.new

config.logger = Logger.new(config.paths["log"].first, 3, 10.megabytes)

# Use a different logger for distributed setups.
# require 'syslog/logger'
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')

if ENV["RAILS_LOG_TO_STDOUT"].present?
  logger           = ActiveSupport::Logger.new(STDOUT)
  logger.formatter = config.log_formatter
  config.logger = ActiveSupport::TaggedLogging.new(logger)
end
4

1 回答 1

0

我有完全相同的问题。原来我有一个作为服务运行的进程的副本(使用 systemctl) - 我以为我暂时禁用了该服务。在这种情况下,日志文件将归“root”所有。

当我在前台启动第二个版本进行测试时,作为当前用户,一切似乎都工作正常,但最终它会尝试轮换属于 root 的日志文件,这会失败,从而有效地禁用日志记录。

于 2018-11-09T11:17:57.113 回答