1. Logger 是什么
<p>
Rails 使用 ActiveSupport::Logger 类把信息写入日志。当然也可换用其他代码库,比如 Log4r。
替换日志代码库可以在 environment.rb或其他环境文件中设置:
Rails.logger = Logger.new(STDOUT)
Rails.logger = Log4r::Logger.new("Application Log")
默认情况下,日志文件都保存在 Rails.root/log/文件夹中,日志文件名为 environment_name.log。
</p>
2. 日志等级
<p>
如果消息的日志等级等于或高于设定的等级,就会写入对应的日志文件中。如果知道当前的日志等级,可以调用 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。
</p>
3. 写日志
<p>
把消息写入日志文件可以在控制器、模型或邮件发送程序中调用 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!!!"
</p>
4. 自定义日志
开发中,我们往往需要自定义日志,写到特殊的日志文件中。(比如我在开发中把api调用的日志专门写在了log/api.log)
1) 全局初始化一个日志变量
$api_logger = Logger.new('log/api.log')
2)可以在任意位置写日志
$api_logger.error("#{api_name}===>#{api_result[:message]}")