How to control QuickFix printouts

Jonathan picture Jonathan · Jun 1, 2011 · Viewed 8.1k times · Source

I'm using QuickFix with Python bindings.
How is it possible to control QuickFix's printouts?
As far as I can tell, there are no configuration parameters for this, and QuickFix dumps a lot of logs into the stdout...

Here's an example log (replaced private info with xxxxx)

<20110603-16:56:28.172, FIX.4.3:xxxxx->xxxxx, incoming>
  (8=FIX.4.3☺9=310☺35=W☺34=5☺49=xxxxx☺52=20110603-16:57:01.872☺56=xxxxx☺57=xxxxx☺55=xxxxx☺262=cb8f5a29-25bb-4f7b-9ec7-a9a8975715eb☺460=4☺541=20110607☺268=2☺269=0☺270=2.76323☺15=xxxxx☺271=2000000☺276=A☺282=xxxxx☺299=1914b8d_BID☺290=0☺269=1☺270=2.76323☺15=xxxxx☺271=2000000☺276=A☺282=xxxxx☺299=xxxxx☺290=0☺10=xxxxx☺)

Answer

bavaza picture bavaza · Jan 2, 2013

When you instantiate a QF application you typically provide 'Factories', e.g.

settings = fix.SessionSettings( fix_settings_file )
storeFactory = fix.FileStoreFactory( settings )
logFactory = fix.ScreenLogFactory( settings )
initiator = fix.SocketInitiator( self, storeFactory, settings, logFactory )
initiator.start()

If you pass None instead of the logFactory (or equivalently omit the parameter), QF will not log messages on screen:

settings = fix.SessionSettings( fix_settings_file )
storeFactory = fix.FileStoreFactory( settings )    
initiator = fix.SocketInitiator( self, storeFactory, settings, logFactory = None) # or: fix.SocketInitiator( self, storeFactory, settings)