`

Rails之管理日志

 
阅读更多

转:http://www.iteye.com/topic/767333

# append to config\environment.rb 

#web访问日志 
RAILS_DEFAULT_LOGGER = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}#{Date.today.to_s}.log", "daily") 
#sql日志 
ActiveRecord::Base.logger = Logger.new("#{RAILS_ROOT}/log/sql/#{RAILS_ENV}#{Date.today.to_s}.log", "daily") 

这个方式以前在实际在生产环境中使用发现是有问题的,因为生产环境是多app进程,而日志的I/0被在第一个进程中打开后就阻塞了其他进程的写入。

 

可以用logrotate,logrotate配置如下:

 

logrotate是一个让日志文件自动按周期归档的工具。以避免日志文件过大。

1. 安装

Ubuntu:$ sudo apt-get install logrotate

redhat: $ sudo yum install logrotate

2. 配置

$ sudo vim /etc/logrotate.conf
/path_to_app/log/production.log {
daily #按日阶段
missingok
rotate 7 #保留7天
compress #压缩
delaycompress #不压缩前一个(previous)截断的文件(需要与compress一起用)
dateext #增加日期作为后缀,不然会是一串无意义的数字
copytruncate #清空原有文件,而不是创建一个新文件
}

3. 让配置生效

sudo /usr/sbin/logrotate /etc/logrotate.conf

分享到:
评论

相关推荐

    Rails项目源代码

    监控和日志管理也很重要,如使用New Relic、Lograge等工具。 10. **测试**: Rails鼓励TDD(测试驱动开发),包括单元测试、集成测试和功能测试。RSpec、Capybara等库可以帮助编写和运行这些测试,确保代码质量。 ...

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...

    The Rails 4 Way

    - **Bundler**:Bundler是Rails项目中用来管理依赖库的工具。它确保项目能够一致地运行在不同的环境中,并且可以轻松地添加或移除依赖库。 - **启动和应用设置**:这部分介绍如何配置Rails项目的启动过程以及如何...

    Advanced Rails

    学习如何进行版本控制、配置管理、日志记录和监控。 7. **Rails插件与Gem**:Rails社区提供了丰富的插件和Gem,如Devise用于身份验证,Paperclip或Carrierwave处理文件上传,Resque或Sidekiq实现后台任务队列。掌握...

    rails 项目起步示例

    - **Gemfile**:定义项目依赖的Gem(Ruby的包管理器),通过`bundle install`安装。 - **Database Migration**:数据库结构的变化会通过迁移文件来实现,运行`rake db:migrate`进行更新。 - ** erb**:ERB...

    rails4.0.0

    Rails 4.0.0是Ruby on Rails框架的一个重要版本,它在2013年发布,带来了许多...以上就是Rails 4.0.0的主要知识点,这些改进和特性使得Rails更加高效、安全且易于维护,成为了开发者构建现代web应用的首选框架之一。

    Rails进行敏捷Web开发(所有版本的源码rails3.0-4.0)

    3. Rails 3.2: Rails 3.2进一步优化了性能,引入了低延迟的LogSubscriber,提升了日志记录的效率。ActiveRecord的查询性能得到提升,例如添加了`pluck`方法,可以直接获取数据库列的值。此外,`rails generate ...

    rails向导打包

    文件会介绍 `rails console`、`binding.pry`、`puts` 输出和 `debugger` 语句的使用,以及如何利用 Rails 的日志系统和测试套件进行调试。 6. **Asset Pipeline**: Rails 的 Asset Pipeline 提供了一种管理应用程序...

    rails 部署 nginx

    可以使用如Logrotate来管理日志文件,Prometheus和Grafana组合进行性能监控,以及使用如New Relic或Sentry来跟踪错误和性能问题。 9. **安全考虑**: 部署时应确保Nginx配置文件的安全性,避免泄露敏感信息,如...

    rails-4.2.0-gems

    在Rails 4.2.0中,最重要的更新之一是Active Record的`change`方法。这个方法允许开发者在模型上追踪所有改变,包括属性的修改、关联的添加和删除。这在日志记录、审计跟踪或者实现撤销操作时非常有用。 另一个重要...

    基于ruby on rails开发示例源码

    1. **Gemfile**:列出项目依赖的Ruby gems(库),Rails和其他第三方库都通过Gemfile来管理。 2. **Gemfile.lock**:记录项目的精确gem版本,确保在不同环境中部署时保持一致性。 3. **config/**:配置文件夹,...

    InspiniaAdmin 2.6.1 Rails_Full_Version

    InspiniaAdmin 2.6.1 Rails Full Version 是一个专为Web应用开发设计的全面的后台管理框架,它基于Ruby on Rails框架,为开发者提供了一整套强大的功能,帮助他们快速构建高效、美观的后台管理系统。此版本的...

    Rails3 使用rake启动后台任务

    在 Rails3 中,rake 不仅用于基本的项目管理,还可以用于启动后台任务,这在处理耗时操作、异步任务或者批量数据处理时非常有用。后台任务可以避免阻塞用户界面,提高应用程序的响应速度。以下是一些关于如何在 ...

    weixin_rails_middleware, 微信集成 ruby weixin_rails_middleware for integration weixin..zip

    综上所述,`weixin_rails_middleware` 是一款强大且易于使用的工具,能够帮助 Ruby on Rails 开发者无缝集成微信服务,实现各种定制化的微信功能,如自动回复、用户管理、消息推送等。通过深入理解其工作原理和使用...

    java基础之rails命令大全.pdf

    ### Java基础之Rails命令大全知识点解析 #### 一、Rails 命令概述 Rails 是一个用于 Web 开发的框架,它基于 Ruby 语言。Rails 遵循 MVC(Model-View-Controller)架构模式,使得 Web 应用程序的开发更加高效、简洁...

    Ruby on Rails 指南 v5.0.1 中文版

    - **前提条件**:为了能够顺利地开始Rails的学习之旅,读者需要具备一定的Ruby语言基础,并且对Web开发有一定的了解。 - **Rails是什么?**:Rails是一种用于开发服务器端应用程序的模型-视图-控制器(MVC)框架,它...

    Rails 3 in Action

    第九章讨论了 **文件上传** 的实现方式,这是 Web 应用中常见的功能之一。 - **文件上传**: - 实现用户可以上传图片、文档等文件的功能。 - 需要考虑安全性问题,防止恶意文件上传。 - 可以使用第三方服务,如 ...

Global site tag (gtag.js) - Google Analytics