Rails开发日志记录 - Rails.logger文件名为nil?

时间:2013-10-07 14:58:12

标签: ruby-on-rails ruby unix logging

我在登录开发环境时遇到了一些麻烦。

这是我的Rails.logger的样子:

Loading development environment (Rails 3.2.13)
irb(main):001:0> Rails.logger
=> #<ActiveSupport::TaggedLogging:0x007fe83533caa0 @logger=#<Logger:0x007fe83533cc30 @progname=nil, @level=1, @default_formatter=#<Logger::Formatter:0x007fe83533cbe0 @datetime_format=nil>, @formatter=#<Logger::SimpleFormatter:0x007fe83533caf0 @datetime_format=nil>, @logdev=#<Logger::LogDevice:0x007fe83533cb90 @shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<IO:/dev/ttys023>, @mutex=#<Logger::LogDevice::LogDeviceMutex:0x007fe83533cb68 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x007fe83533cb18>>>>>
irb(main):002:0>

我的日志目录已获得许可755:

drwxr-xr-x    7 manderson  staff   238B Oct  4 15:17 log

以下是/ log目录的内容:

$ ls -lah log/
total 32
drwxr-xr-x   7 manderson  staff   238B Oct  4 15:17 .
drwxr-xr-x@ 23 manderson  staff   782B Oct  4 15:38 ..
-rw-r--r--   1 manderson  staff     0B Aug 26 13:23 .gitkeep
-rw-rw-rw-   1 manderson  staff     0B Oct  4 15:38 development.log
-rw-r--r--   1 manderson  staff    13K Oct  7 10:43 newrelic_agent.log
-rw-r--r--   1 manderson  staff     0B Oct  4 15:38 production.log
-rw-rw-rw-   1 manderson  staff     0B Oct  4 15:38 test.log

正如您所看到的,我的development.log文件被正确许可(我认为),但Rails.logger没有正确设置log / development.log。

知道为什么会这样吗?提前谢谢。

编辑: 这是我的config / environment / development.rb:

MyAppName::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Log error messages when you accidentally call methods on nil.
  config.whiny_nils = true

  # Show full error reports and disable caching
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false
  config.cache_store = :dalli_store

  # Don't care if the mailer can't send
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger
  config.active_support.deprecation = :log

  # Only use best-standards-support built into browsers
  config.action_dispatch.best_standards_support = :builtin

  # Raise exception on mass assignment protection for Active Record models
  # config.active_record.mass_assignment_sanitizer = :strict

  # Log the query plan for queries taking more than this (works
  # with SQLite, MySQL, and PostgreSQL)
  # config.active_record.auto_explain_threshold_in_seconds = 0.5

  # Do not compress assets
  config.assets.compress = false

  # Expands the lines which load the assets
  config.assets.debug = true

  config.log_level = :debug

end

编辑2:这是我的application.rb。对不起,这篇文章变得非常冗长,感谢阅读:)

require File.expand_path('../boot', __FILE__)

require "action_controller/railtie"
require "action_mailer/railtie"
require "active_resource/railtie"
require "rails/test_unit/railtie"
require "sprockets/railtie"

if defined?(Bundler)
  # If you precompile assets before deploying to production, use this line
  Bundler.require(*Rails.groups(:assets => %w(development test)))
  # If you want your assets lazily compiled in production, use this line
  # Bundler.require(:default, :assets, Rails.env)
end

module MyAppName
  class Application < Rails::Application
    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration should go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded.

    # Configure the default encoding used in templates for Ruby 1.9.
    config.encoding = "utf-8"

    # Configure sensitive parameters which will be filtered from the log file.
    config.filter_parameters += [:password]

    # Enable escaping HTML in JSON.
    config.active_support.escape_html_entities_in_json = true

    # Use SQL instead of Active Record's schema dumper when creating the database.
    # This is necessary if your schema can't be completely dumped by the schema dumper,
    # like if you have constraints or database-specific column types
    # config.active_record.schema_format = :sql

    # Enforce whitelist mode for mass assignment.
    # This will create an empty whitelist of attributes available for mass-assignment for all models
    # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
    # parameters by using an attr_accessible or attr_protected declaration.
    # config.active_record.whitelist_attributes = true

    # Enable the asset pipeline
    config.assets.enabled = true

    # Don't load rails environment during asset precompilation
    config.assets.initialize_on_precompile = false

    # Version of your assets, change this if you want to expire all your assets
    config.assets.version = '1.1'
  end
end

0 个答案:

没有答案