class QuickBase::Logger
To log QuickBase
requests and responses to a file, make an instance of this class and call Client.setLogger
( loggerInstance ). Call Client.setLogger
( nil ) to turn logging off. The log file is written in CSV format to make it importable by QuickBase
.
Attributes
append[R]
file[R]
filename[R]
Public Class Methods
new( filename, append = true )
click to toggle source
# File lib/QuickBaseClient.rb, line 5047 def initialize( filename, append = true ) @requestEntryNum = @responseEntryNum = 0 changeLogFile( filename, append ) end
Public Instance Methods
changeLogFile( filename, append = true )
click to toggle source
# File lib/QuickBaseClient.rb, line 5062 def changeLogFile( filename, append = true ) if @file and @filename and @filename != filename closeLogFile() end begin @append = append skipHeader = (@append == true and FileTest.exist?( filename )) @file = File.open( filename, @append ? "a" : "w" ) @filename = filename @file.print( "entry,request time,dbid,api,request,response time, response" ) unless skipHeader rescue StandardError => e closeLogFile() puts "Logger error: #{e}" end end
closeLogFile()
click to toggle source
# File lib/QuickBaseClient.rb, line 5052 def closeLogFile() if @file @file.close @file = nil @filename = nil @append = true @requestEntryNum = @responseEntryNum = 0 end end
getTimeString()
click to toggle source
# File lib/QuickBaseClient.rb, line 5116 def getTimeString() t = Time.now t.strftime( "%Y-%m-%d-%H-%M-%S" ) end
logRequest( dbidForRequestURL, api_Request, requestXML )
click to toggle source
# File lib/QuickBaseClient.rb, line 5078 def logRequest( dbidForRequestURL, api_Request, requestXML ) if @file @requestEntryNum += 1 entry = "\n#{@requestEntryNum}," entry << "#{getTimeString()}," entry << "#{dbidForRequestURL}," entry << "#{api_Request}," maxChars = requestXML.length > 256 ? 256 : requestXML.length request = requestXML[0,maxChars] request.gsub!( ",", "_" ) entry << "#{request}" @file.print( entry ) end end
logResponse( error, responseXML )
click to toggle source
# File lib/QuickBaseClient.rb, line 5096 def logResponse( error, responseXML ) if @file @responseEntryNum += 1 if @responseEntryNum != @requestEntryNum entry = "\n#{@responseEntryNum},,,,#{getTimeString()}," else entry = ",#{getTimeString()}," end maxChars = responseXML.length > 256 ? 256 : responseXML.length response = responseXML[0,maxChars] response.gsub!( ",", "_" ) entry << "#{response}" @file.print( entry ) end end