1. Logger 是什么
<p>
Rails 使用 ActiveSupport::Logger 類把信息寫入日志。當(dāng)然也可換用其他代碼庫,比如 Log4r。
替換日志代碼庫可以在 environment.rb或其他環(huán)境文件中設(shè)置:
Rails.logger = Logger.new(STDOUT)
Rails.logger = Log4r::Logger.new("Application Log")
默認(rèn)情況下,日志文件都保存在 Rails.root/log/文件夾中,日志文件名為 environment_name.log。
</p>
2. 日志等級
<p>
如果消息的日志等級等于或高于設(shè)定的等級,就會寫入對應(yīng)的日志文件中。如果知道當(dāng)前的日志等級,可以調(diào)用 Rails.logger.level方法。
可用的日志等級包括::debug, :info, :warn, :error, :fatal 和 :unknown,分別對應(yīng)數(shù)字 0-5。
修改默認(rèn)日志等級的方式如下:
config.log_level = :warn # In any environment initializer, or
Rails.logger.level = 0 # at any time
Rails 所有環(huán)境的默認(rèn)日志等級是 debug。
</p>
3. 寫日志
<p>
把消息寫入日志文件可以在控制器、模型或郵件發(fā)送程序中調(diào)用 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. 自定義日志
開發(fā)中,我們往往需要自定義日志,寫到特殊的日志文件中。(比如我在開發(fā)中把a(bǔ)pi調(diào)用的日志專門寫在了log/api.log)
1) 全局初始化一個日志變量
$api_logger = Logger.new('log/api.log')
2)可以在任意位置寫日志
$api_logger.error("#{api_name}===>#{api_result[:message]}")