ruby-on-rails - 登录Rails应用

标签 ruby-on-rails logging

log4r是正确登录Rails应用程序(日期时间,严重性,通知等?)的好选择吗?还是还有其他东西?

最佳答案

将其放入ruby文件中,将文件放在/ lib文件夹(Convention)中,然后从您的环境中“请求”它。

require 'active_support'

# Logger class for custom logging format
class CustomLogger < ActiveSupport::BufferedLogger

private
# CustomLogger doesn't define strings for log levels
# so we have to do it ourselves
def severity_string(level)
  case level
    when DEBUG
        :DEBUG
    when INFO
        :INFO
    when WARN
        :WARN
    when ERROR
        :ERROR
    when FATAL
        :FATAL
    else
        :UNKNOWN
  end
end

public
# monkey patch the CustomLogger add method so that
# we can format the log messages the way we want
def add(severity, message = nil, progname = nil, &block)
  return if @level > severity
  message = (message || (block && block.call) || progname).to_s
  # If a newline is necessary then create a new message ending with a newline.
  # Ensures that the original message is not mutated.
  message = "[%5s %s] %s\n" % [severity_string(severity),
                      Time.now.strftime("%d-%m-%Y %H:%M:%S"),
                      message] unless message[-1] == ?\n
  buffer << message
  auto_flush
  message
end

end

这些行在您的环境中的初始化块内。
config.log_level = ENV['RAILS_ENV']=='development' ?       
ActiveSupport::BufferedLogger::Severity::INFO :     
ActiveSupport::BufferedLogger::Severity::DEBUG

关于ruby-on-rails - 登录Rails应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3654827/

相关文章:

ruby-on-rails - 使用 Shoulda Ruby on Rails 获取 HTTP 响应

ruby-on-rails - Rails 缓存的默认到期时间是多少?

ruby-on-rails - Rails 在 fields_for 内部构建 fields_for 一次

ruby-on-rails - Rails 3 和 Twilio 进行电话验证

c# - 在 appsettings.json 日志记录上下文中,MinimumLevel 和 Override 意味着什么?

ruby-on-rails - 在Rails中记录默认路由的使用

c# - 在 C# 客户端中捕获 SOAP 消息

ruby-on-rails - 帮助!我的 application_helper.rb 变得笨拙

java - Log4j - 记录内部 Log4j 事件

iphone - 是否有一种流行的开源 NSLog 替代品可以处理仅在 DEBUG 和不同日志级别下启用?