Cucumber / Savon省略或删除日志记录输出

在运行黄瓜测试时,我得到(除了测试结果)以下forms的许多调试/日志相关输出:

D, [2013-03-06T12:21:38.911829 #49031] DEBUG -- : SOAP request: D, [2013-03-06T12:21:38.911919 #49031] DEBUG -- : Pragma: no-cache, SOAPAction: "", Content-Type: text/xml;charset=UTF-8, Content-Length: 1592 W, [2013-03-06T12:21:38.912360 #49031] WARN -- : HTTPI executes HTTP POST using the httpclient adapter D, [2013-03-06T12:21:39.410335 #49031] DEBUG -- :  <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ... 

有没有办法关掉这个输出? 我试过按照这篇文章中的说明操作,我的config_spec.rb文件是:

 require "spec_helper" describe Savon::Config do let(:config) { config = Savon::Config.new config._logger = Savon::Logger.new config.log_level = :error # changing the log level HTTPI.log = false # to total silent the logging. config } describe "#clone" do it "clones the logger" do logger = config.logger clone = config.clone logger.should_not equal(clone.logger) end end it "allows to change the logger" do logger = Logger.new("/dev/null") config.logger = logger config._logger.subject.should equal(logger) end it "allows to change the log level" do Savon::Request.log_level = :info config.log_level = :error config._logger.level.should == :error end it "allows to enable/disable logging" do config.log = false config._logger.should be_a(Savon::NullLogger) config.log = false config._logger.should be_a(Savon::Logger) end end 

但是当我运行黄瓜测试时,记录仍然显示。

通过查看Savon API的文档,您似乎可以通过执行以下操作来使日志记录静音:

 Savon.configure do |config| config.log = false end 

上面的代码片段可以放在你的Cucumber World或者features/support/env.rb中,以便在Cucumber中记录日志。

日志可能对调试很有用。 因此,不是完全沉默,而是将它们放入rails日志中可能更好。

以下是如何在savon 2中执行此操作:

 # config/initializers/savon.rb HTTPI.logger = Rails.logger # when initializing client @client = Savon.client wsdl: '...', logger: Rails.logger