【发布时间】:2018-06-28 13:23:01
【问题描述】:
我在 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
【问题讨论】:
-
您确定以正确的用户身份运行 rails 吗?您可以添加类似
u = %x(whoami).strip; raise "Wrong user. Current user is #{u}" unless u == "apps"的内容来测试它。这里假设系统支持whoami。
标签: ruby-on-rails logrotate log-rotation