2011-06-01 66 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