Ruby on Rails 的log日志处理

1. Logger 是什么


Rails 使用 ActiveSupport::Logger 类把信息写入日志。当然也可换用其他代码库,比如 Log4r。
替换日志代码库可以在 environment.rb或其他环境文件中设置:

    Rails.logger = Logger.new(STDOUT)
    Rails.logger = Log4r::Logger.new("Application Log")

默认情况下,日志文件都保存在 Rails.root/log/文件夹中,日志文件名为 environment_name.log。


2. 日志等级


如果消息的日志等级等于或高于设定的等级,就会写入对应的日志文件中。如果知道当前的日志等级,可以调用 Rails.logger.level方法。
可用的日志等级包括::debug, :info, :warn, :error, :fatal 和 :unknown,分别对应数字 0-5。
修改默认日志等级的方式如下:

    config.log_level = :warn # In any environment initializer, or
    Rails.logger.level = 0 # at any time

Rails 所有环境的默认日志等级是 debug。


3. 写日志


把消息写入日志文件可以在控制器、模型或邮件发送程序中调用 logger.(debug|info|warn|error|fatal)方法。

    logger.debug "Person attributes hash: #{@person.attributes.inspect}"
    logger.info "Processing the request..."
    logger.fatal "Terminating application, raised unrecoverable error!!!"


4. 自定义日志

开发中,我们往往需要自定义日志,写到特殊的日志文件中。(比如我在开发中把api调用的日志专门写在了log/api.log)

1) 全局初始化一个日志变量
    $api_logger = Logger.new('log/api.log')
2)可以在任意位置写日志
$api_logger.error("#{api_name}===>#{api_result[:message]}")

你可能感兴趣的:(Ruby on Rails 的log日志处理)