Ruby on Rails 的log日志處理

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]}")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在應(yīng)用程序中添加日志記錄總的來說基于三個目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計分析...
    時待吾閱讀 5,222評論 1 13
  • 在應(yīng)用程序中添加日志記錄總的來說基于三個目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計分析...
    時待吾閱讀 5,159評論 0 6
  • (http://www.cnblogs.com/zhangchenliang/p/4546352.html) 1、...
    凌雲(yún)木閱讀 2,621評論 0 2
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • 一萬年太久,只爭朝夕。如果一萬年對你我凡人而言太久,時間長河又太長,多久才算久?你又愿意等多久呢?
    8eb783a6b522閱讀 113評論 0 0

友情鏈接更多精彩內(nèi)容