Ruby on Rails 的log日志处理

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]}")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 5,102评论 1 13
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 5,047评论 0 6
  • (http://www.cnblogs.com/zhangchenliang/p/4546352.html) 1、...
    凌雲木阅读 2,487评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 一万年太久,只争朝夕。如果一万年对你我凡人而言太久,时间长河又太长,多久才算久?你又愿意等多久呢?
    8eb783a6b522阅读 102评论 0 0