Что лучше всего в Rails Logging Gem

как лучше всего настроить функции ведения журнала в проекте рельсов? Я ищу что-то вроде Log4J, доступного для Rails. Я нашел log4r, и он противоречиво встроен в класс Logger, а также попробовал драгоценный камень Logging, и у него есть некоторые проблемы с настройкой в ​​качестве регистратора аудита. Пожалуйста, дайте мне знать ваши предложения по этой теме, так как я новичок в этой теме.

Я использовал нижеприведенный блок кода в logging.rb и включил его в environment.rb, но я получаю сообщение об ошибке при "возврате" ключевого слова, поскольку оно устарело на рельсах 2.8.

config / environment.rb

# Logging
require File.join(File.dirname(__FILE__), 'logging')

Rails::Initializer.run do |config|

config / logging.rb

require 'logging'

# Logging.init is required to avoid 
#   unknown level was given 'info' (ArgumentError)
# or
#   uninitialized constant Logging::MAX_LEVEL_LENGTH (NameError)
# when an Appender or Layout is created BEFORE any Logger is instantiated:
Logging.init :debug, :info, :warn, :error, :fatal

layout = Logging::Layouts::Pattern.new :pattern => "[%d] [%-5l] %m\n"

# Default logfile, history kept for 10 days
default_appender = Logging::Appenders::RollingFile.new 'default', \
  :filename => 'log/default.log', :age => 'daily', :keep => 10, :safe => true, :layout => layout

# Audit logfile, history kept forever
audit_appender = Logging::Appenders::RollingFile.new 'audit', \
  :filename => 'log/audit.log', :age => 'daily', :safe => true, :layout => layout

# Production logfile, history kept forever
prod_appender = Logging::Appenders::RollingFile.new 'prod', \
  :filename => 'log/production.log', :age => 'daily', :safe => true, :layout => layout

DEFAULT_LOGGER = returning Logging::Logger['server'] do |l|
  l.add_appenders default_appender
end

person Pradeep Sanjaya    schedule 26.07.2011    source источник
comment
Взгляните на мой блог о том, как настроить log4r с Rails 3.x, возможно, это поможет вам начать работу: blog.mmlac.com/log4r-for-rails   -  person mmlac    schedule 15.10.2013


Ответы (2)


Должно получиться так:

config / logging.rb

require 'logging'

# Logging.init is required to avoid
#   unknown level was given 'info' (ArgumentError)
# or
#   uninitialized constant Logging::MAX_LEVEL_LENGTH (NameError)
# when an Appender or Layout is created BEFORE any Logger is instantiated:
Logging.init :debug, :info, :warn, :error, :fatal

layout = Logging::Layouts::Pattern.new :pattern => "[%d] [%-5l] %m\n"

# Default logfile, history kept for 30 days
default_appender = Logging::Appenders::RollingFile.new 'default', \
  :filename => "log/#{Rails.env}.log", :age => 'daily', :keep => 30, :safe => true, :layout => layout

log = Logging::Logger[:root]
log.add_appenders default_appender
log.level = :info

Rails.logger = log
person kabochkov    schedule 08.11.2011