2011-06-01 87 views
2

我使用QuickFix與Python綁定。
如何控制QuickFix的打印輸出?
據我所知,沒有configuration parameters這一點,並QuickFix的轉儲大量登錄到標準輸出...如何控制QuickFix打印輸出

下面是一個例子日誌(與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☺) 

回答

4

當實例化一個QF應用您通常提供 '工廠',例如

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

如果您傳遞None代替logFactory(或等價省略該參數),QF也不會在屏幕上記錄消息:

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

Are you using these configuration parameters these i.e. FileStorePath?他們通常將所有消息記錄到配置文件中提到的文件和文件夾中。還有一個查詢,這些日誌消息都不是你的嗎?

在庫中,沒有太多的cout語句可以登錄到stdout,而是登錄到日誌文件。

你所關心的cout語句是Log.h文件。您可以將它們註釋掉或將它們重定向到一個文件。

+0

我敢肯定,這些都不是我的日誌。重新建立您的第一個鏈接 - FileLogPath似乎沒有任何影響。重新建立第二個鏈接 - FileStorePath更改存儲正文,標題,seqnums和會話文件的位置並且對這些日誌沒有影響 – Jonathan 2011-06-03 16:59:39

+0

@Jonathan - 更新了答案。 – DumbCoder 2011-06-04 11:33:44

+0

看來你對於log.h中的cout是正確的。問題是我正在使用quickfix的安裝版本和Python的SWIG綁定,所以我無法用這些cout語句重新編譯quickfix註釋掉。我希望有這樣的配置。 – Jonathan 2011-06-09 11:12:36

0

可能你可以簡單地重定向到/ dev/null 我不想從代碼中刪除它們,因爲它們在調試東西時有很多幫助。

+0

任何機會可以是配置文件中的(布爾)配置? – Jonathan 2011-08-31 07:51:07

4

將這些放在配置文件中應該有所幫助。 N表示不需要。

ScreenLogEvents = N ScreenLogShowIncoming = N ScreenLogShowOutgoing = N ScreenLogShowHeartBeats = N

+0

這些設置出現在[QuickFix/J配置文檔](http://www.quickfixj.org/quickfixj/usermanual/1.5.1/usage/configuration.html)中,但不出現在[QuickFix config docs](http:///www.quickfixengine.org/quickfix/doc/html/configuration.html)。你知道他們是否也在那裏工作,雖然沒有證件? – Jonathan 2012-07-10 06:33:07

+0

他們使用C++ – Groovy 2012-07-10 07:46:32

+0

如果你可以在你的場景中嘗試它們並與社區分享結果,那將會很好。 – Groovy 2012-07-10 11:10:14