草庐IT

日志告警

全部标签

ruby-on-rails - Ruby on Rails - 如何以彩色打印日志消息

我很惊讶我已经无法在SO上找到它了。我希望能够为输出到控制台的日志输出中的特定字符串段着色。所以像这样:"ThispartofthemessageinGreen:ThispartinBlue"可能是这样写的:Rails.logger.debug("ThispartofthemessageinGreen:".green+"ThispartinBlue".blue) 最佳答案 基本上,您要做的是将颜色的ANSI转义序列嵌入到调试字符串中,就像您在常规Ruby程序中所做的那样。有几种方法可以解决这个问题:使用rainbowgem,它允许你

ruby-on-rails - 在日志消息之前添加当前时间

我为我的应用程序创建了一个自定义记录器,称为CRON_LOG,只需将这段代码添加到config/environment.rbCRON_LOG=Logger.new("#{Rails.root}/log/cron.log")CRON_LOG.level=Logger::INFO然后,当我想记录一些东西时,就这样做:CRON_LOG.info"something"它工作正常,但我想在每条日志消息之前添加当前时间戳。当然,我可以将Time.now添加到我的日志消息中,但我想知道是否有一种方法可以将它作为默认值添加到每条日志消息中。我该怎么做?谢谢。 最佳答案

ruby - 将 "puts"命令输出重定向到日志文件

我正在使用daemonsgem在Ruby中创建一个守护进程。我想将守护进程的输出添加到日志文件中。我想知道将puts从控制台重定向到日志文件的最简单方法是什么。 最佳答案 如果您需要同时捕获STDERR和STDOUT并且不想求助于日志记录:$stdout.reopen("my.log","w")$stdout.sync=true$stderr.reopen($stdout)恢复:$stdout=STDOUT 关于ruby-将"puts"命令输出重定向到日志文件,我们在StackOverf

ruby - 观看/阅读不断增长的日志文件

我有一个不断增长的日志文件。我如何通过Ruby脚本查看和解析它?脚本将解析写入文件的每个新行,并在新行包含字符串'ERROR'时将内容输出到屏幕 最佳答案 defwatch_for(file,pattern)f=File.open(file,"r")f.seek(0,IO::SEEK_END)whiletruedoselect([f])line=f.getsputs"Foundit!#{line}"ifline=~patternendendwatch_for("g.txt",/ERROR/)感谢ezpz的想法,使用select方法你

ruby-on-rails - 如何在 Rails 中为每个表创建完整的审计日志?

我们最近开始在我们公司插入合规性,并且需要保留对我们当前在Rails应用程序中管理的数据更改的完整历史记录。我们已经获准将每个操作的描述性内容简单地推送到日志文件,这是一种相当不引人注目的方式。我倾向于在ApplicationController中做这样的事情:around_filter:set_logger_usernamedefset_logger_usernameThread.current["username"]=current_user.login||"guest"yieldThread.current["username"]=nilend然后创建一个看起来像这样的观察者:c

ruby - "puts"输出未显示在 Sinatra 应用程序的 Heroku 日志中

我正在尝试使用“puts”来测试托管在Heroku上的Sinatra应用程序的一些内容。有趣的是,输出似乎排队并且仅在重新启动Herokudyno时显示。我尝试过使用“Thin”和“Webrick”,但遇到了同样的问题。有什么想法吗? 最佳答案 正如您在herokudocs上看到的那样:将此添加到您的config.ru:$stdout.sync=true不要忘记stdout之前的$否则它不会工作。 关于ruby-"puts"输出未显示在Sinatra应用程序的Heroku日志中,我们在S

ruby-on-rails - logger.debug 不写入 Rails 中的日志文件

我正在尝试在Rails中调试模型,因此我使用了以下代码:logger.debug('asasd')但是,我正在跟踪日志文件development.log,但我没有看到它添加到此文件中。我确定这个模块正在运行我已确认运行时错误正在记录到此文件中,并且我在tail时看到了它们。我如何让它工作? 最佳答案 确保您已将日志级别设置为在environments/appropriate_env_file.rb中进行调试:config.log_level=:debug并确保您根据运行环境跟踪正确的日志文件。

ruby - 如何在像 nginx 这样的代理后面时在 rails 日志中记录真实的客户端 ip

问题我在两台服务器上安装了Rails3.2.15和机架1.4.5。第一个服务器是服务于静态Assets的nginx代理。第二台服务器是为Rails应用程序提供服务的unicorn。在Railsproduction.log中,我总是看到nginxIP地址(10.0.10.150)而不是我的客户端IP地址(10.0.10.62):StartedGET"/"for10.0.10.150at2013-11-2113:51:05+0000我想在日志中有真实的客户端IP。我们的设置HTTPheaderX-Forwarded-For和X-Real-IP在nginx中设置正确,我已经定义了10.0.1

ruby - Rails 控制台未将 SQL 语句输出到我的开发日志

当我通过本地主机访问我的Webrick服务器时,或者当我运行railsmigrations时,我的development.log被正确写入。但是,当我使用“railsc”启动我的rails控制台,然后尝试创建一个新的数据库对象并通过“user.save”之类的命令保存它时,我在控制台中看到了SQL语句,但没有写入任何内容开发日志。大多数人在回答与此类似的问题时会说“检查以确保配置设置为正确的环境”。我已经这样做了,并且可以在我的系统上说这发生在一个全新的Rails应用程序上。如有任何帮助,我们将不胜感激。谢谢! 最佳答案 rails

ruby-on-rails - 如何在 RSpec 测试中打开 ActiveRecord 的 SQL 调试日志记录?

我对我的模型进行了一些RSpec测试,我想像在Rails服务器模式中看到的那样打开SQLActiveRecord日志记录。如何做到这一点?我开始我的测试RAILS_ENV=testbundleexecrspecmy/test_spec.rb谢谢 最佳答案 您可以尝试在某处的测试中将ActiveRecord记录器设置为标准输出。如果您正在使用rspec,也许在spechelper中?ActiveRecord::Base.logger=Logger.new(STDOUT) 关于ruby-on