我在Rails应用程序中使用日志轮换,这似乎起作用。但是,新的日志文件归root
用户所有,而不是apps
用户。该应用程序通过Passenger运行,该用户也使用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
答案 0 :(得分:0)
我有完全一样的问题。原来,我有一个作为服务运行的进程的副本(使用systemctl)-我以为我暂时禁用了该服务。在这种情况下,日志文件将由“ root”拥有。
当我在前台启动第二个版本进行测试时,作为当前用户,一切似乎都正常,但是最终它将尝试旋转属于root的日志文件,这将失败,从而有效地禁用了日志记录。