手机版 欢迎访问魄力云云市场资讯网站

当前位置:主页 > 网络与CDN >

云存储方式_云存储支持外链的

时间:2020-10-31 05:18:10|来源:魄力云|编辑:魄力云|点击:

如何收集、定制和管理Rails应用程序日志

小费/红宝石/日志/数据日志记录是理解应用程序行为的一个重要部分。日志包含应用程序操作的基本记录,包括数据库查询、服务器请求和错误。通过适当的日志记录,您始终可以对应用程序的使用和性能有全面的、富上下文的见解。在这篇文章中,我们将介绍Rails应用程序的日志选项,并了解一些创建信息日志的最佳实践。我们还将向您展示如何使用Lograge进一步增强日志的有用性图书馆。注意本指南使用Linux主机上Rails 5.2.0应用程序的示例和命令。如果您的环境不同,您可能需要修改这些命令,其中合适。工作使用日志级别Rails应用程序附带三种环境配置,可在config/environments/目录中找到:开发.rb, 测试.rb,和生产.rb. 一旦应用程序开始生成日志,所有环境都会在logs目录中创建相应的日志文件。由于Rails在默认情况下为开发环境中的应用程序提供服务,日志会自动写入到开发.log文件.Rails使用六种不同的日志级别:debug、info、warn、error、fatal和unknown。每个级别都定义了应用程序的信息量日志:调试:供开发人员和系统管理员使用的诊断信息,包括数据库调用或检查对象属性。这是最详细的日志级别信息:有关正常应用程序操作(如服务启动或停下来。警告:应用程序可以很容易地从中恢复但应该很快解决的操作。这可能包括使用过期的宝石或重新尝试操作。错误:导致操作失败(例如丢失数据或文件)但不会导致应用程序失败的错误。这个问题应该很快解决,但应用程序可以记录异常并继续跑。致命的:导致应用程序崩溃的错误,应立即解决以防止进一步的数据损失。未知:未按任何其他级别分类但应记录在案调试和信息级别记录了有关应用程序行为的大部分信息,而更高级别只记录警告或错误。默认情况下,Rails应用程序在调试级别为所有环境(包括生产环境)生成日志。一个调试日志条目可以包含很多阵型:开始发帖2018-06-27 15:48:10+0000第127.0.0.1条由ArticlesController处理创建为HTML参数:{"utf8"=>"✓","文章"=>{"title"=>"创建新帖子","text"=>"新帖子描述"},"提交"=>"保存文章"}[1米[35米(0.2毫秒)[0米[1米[35米进[0米↳应用程序/控制器/文章_控制器rb:20[1m[36mArticle Create(1.0ms)[0m[1m[32min插入到"文章"("标题","文本","创建位置","更新位置")值($1,$2,$3,$4)返回"id"[0m[title","Create New Post"],"text","Description for New Post"],"创建时间","2018-06-27 15:48:11.116208"],更新时间:,"2018-06-27 15:48:11.116208"]]↳应用程序/控制器/文章_控制器rb:20[1米[35米(0.5米)[0米[1米[35米公尺[0米↳应用程序/控制器/文章_控制器rb:20已重定向到:3000/条/29在25ms内找到已完成的302(ActiveRecord:4.5ms)由于此日志级别包含与应用程序相关的大多数诊断信息,因此它对于开发或测试环境很有价值。但是,对于生产环境来说,它可能过于冗长。您可以通过编辑适用的环境文件来调整任何环境的日志级别:#config/environments/开发.rb配置日志级别=:信息信息日志级别仍将包含有关单个请求的信息,但将排除中的任何低级诊断阵型:开始发帖2018-06-06 18:06:18+0000 10.0.2.2的"/条款"无法从10.0.2.2呈现控制台!允许的网络:127.0.0.1,::127.0.0.0/127.255.255.255由ArticlesController处理创建为HTML渲染物品/新建.html.erb布局/应用程序内渲染物品/新建.html.erb布局/应用内(1.8ms)146ms内完成200 OK(视图:140.7ms | ActiveRecord:0.3ms)解释日志上面显示的两个示例日志都包含有助于理解典型应用程序行为和o的信息操作:请求和URL端点:发送到应用程序控制器的特定URL终结点的HTTP请求方法(例如GET、POST或PUT);操作:用于完成请求的方法,由应用程序routerTemplates和partials映射:为URL endpointRequest生成适当网页视图所需的文件状态:为已完成的请求生成的HTTP状态代码及其在调试级别的运行响应时间,除了列出的数据外,日志还包含更多诊断信息上图:参数:作为URL或HTTP请求methodDatabase调用的一部分检索或发送的数据:调用ActiveRecord查询以检索请求所需的数据每个日志末尾的状态显示请求是否生成成功响应(2xx)、重定向(3xx)、客户端错误(4xx)或服务器错误(5xx)。客户端错误可能表示应用程序中的页面丢失,而服务器错误可能意味着服务器正在重新启动(或完全关闭)。如果应用程序生成客户机或服务器错误,您还将在日志中看到它的堆栈跟踪,这样您就可以更轻松地找到根本原因并解决问题:已开始获取"/articles/1"表示2018-06-27 15:42:44+0000的127.0.0.1由ArticlesController处理#显示为HTML参数:{"id"=>"1"}49ms内完成500个内部服务器错误(ActiveRecord:0.0ms)名称错误(未初始化常量ArticlesController::Article):应用程序/控制器/文章_控制器.rb:7:在"show"中在调试问题时,可以参考日志,以便了解是什么导致了应用程序中的意外或不需要的行为。例如,如果您没有看到请求的相应页面,那么您可能会看到以下内容错误:没有路由匹配[获取]"/注册"此错误表示配置中映射的路由可能有问题/路线.rb文件。路由器通过适当的控制器映射url和HTTP请求,因此应用程序可以通过提供正确的web页面来响应。这可能包括显示一个特定的页面(GET)或编辑现有的数据(PUT)。要收集更多详细信息,可以为添加自定义日志记录Rails.自定义日志要进一步增强应用程序生成的日志,可以使用ActiveSupport::Logger类创建自定义日志。这个类是rails5.2+应用程序的内置类,提供了创建和标记自定义日志的方法。让我们看看如何使用logger类来检测以下示例方法,该方法从列表:def show@条款=文章.查找(参数[:id])结束如果要在应用程序中选择项目时记录有关该项目的特定属性,可以扩展该方法以包含自定义日志记录声明:def show@物品=文章.查找(参数[:id])logger.debug"文章信息:#{@物品属性检查}"结束Ruby inspect方法输出与所选事件相关联的所有属性,包括时间戳、id和表单字段值。现在,只要选择了一篇文章,应用程序就会在调试时生成一个与此类似的日志级别:文章信息:{"id"=>6,"title"=>"New Article","text"=>"Creating a New Article.","创建时间"=>2018年6月19日星期二14:46:48 UTC+00:00,"更新时间"=>2018年6月19日星期二14:46:48 UTC+00:00}与Rails环境一样,您可以将任何日志级别设置为自定义日志。这个logger.debug上面示例中的语句最适合在开发特性时在日志中显示更多诊断信息。两者兼而有之记录器.warn以及记录器.错误语句可用于应用程序中围绕特定操作的自定义警告或异常。注意环境的日志级别非常重要,因为它决定了记录的内容。你的应用程序不会记录logger.debug例如,将其环境设置为warn水平轨道使您能够立即为应用程序创建任何类型的日志,并设置适当的日志级别。在小型应用程序中,Rails很好地管理日志,因此您可以轻松地调试问题,而不需要第三方库。但是,随着应用程序的增长,您将需要考虑如何更好地管理日志量生成。转换使用LogrageProduction应用程序的日志可以同时为多个进程生成日志,将数据混合在一起,使从日志中拼凑信息变得更加困难。您可以通过使用将Rails日志转换为更易于解析和读取的格式的库来管理这种复杂性。例如,Lograge是一个库,它可以轻松地清理Rails日志并将其转换为几种可能的格式,包括JSON.To开始使用Lograge,将gem'Lograge'和gem'logragesql'添加到Gemfile并安装它们有:捆绑安装logragesqlgem是lograge的扩展,它将在调试日志级别生成的所有数据库查询添加到新格式化的JSON中日志。你可以轻松地使用初始化器文件启用和配置第三方库,Rails将在为应用程序提供服务时自动包含这些库。Rails在应用程序框架和相关gem之后加载初始值设定项文件。创建日志.rb文件保存在项目的config/initializers文件夹中,并包含以下代码段:#config/initializers/日志.rb需要"lograge/sql/extension"Rails.application.configure做#日志配置已启用config.lograge.enabled=正确config.lograge.formatter=Lograge::格式化程序::Json.newconfig.colorize_日志记录=错误config.lograge.custom廑选项=lambda do |事件|{:params=>事件.有效载荷[:参数]}结束结束示例初始值设定项显示ab

云主机服务商 Ucloud云计算 移动云数据 云存储服务器 Ucloud云主机 云计算提供商 阿里数据库 服务器租用 云储存服务器 Web云服务器 ucloud云数据库 独享云主机 云服务器服务商 海外云存储 云服务器主机 云计算解决方案 国内云存储 数据库云平台

Copyright © 2002-2020 魄力云 版权所有