2013-03-06 2 views
5

/제거 형태로 관련 출력을 로그 :오이/Savon가 생략하거나 로그 출력

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 -- : <?xml version="1.0" encoding="UTF-8"?> 
<soap:Envelope 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
... 

방법이 있나요 이 출력을 끄려면? 나는 this post의 지침에 따라 시도, 내 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에 대한 설명서를보고

+0

당신이 사용하는 Savon의 버전은 무엇? 2.1.0? http://savonrb.com/version2.html#changes – Bala

+0

savon (1.2.0)을 확인 하셨기를 바랍니다. 이 버전을 사용해야합니다 (타사의 종속성입니다) – obaqueiro

답변

10

당신은 수행하여 로깅을 침묵 할 수있을 것 :

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

위의 기록을 침묵하기 위해 귀하의 Cucumber World 또는 features/support/env.rb에 넣어 될 수있는 미리보기 오이뿐만 아니라.

+2

감사합니다. << HTTPI.log = false >>와 함께 이것이 내가 원하는 것을 달성했습니다. – obaqueiro

0

로그는 디버깅에 유용 할 수 있습니다. 그래서 완전히 침묵시키는 것보다는 레일 로그에 넣는 것이 더 낫습니다. 여기

은 savon이 그것을 수행하는 방법입니다 :

# config/initializers/savon.rb 
HTTPI.logger = Rails.logger 

# when initializing client 
@client = Savon.client wsdl: '...', logger: Rails.logger