5

我正在使用带有 Python 绑定的QuickFix 。
如何控制 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

4 回答 4

7

当您实例化 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)
于 2013-01-02T12:40:59.710 回答
6

将这些放在配置文件中应该会有所帮助。N 表示不需要。

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

于 2012-07-10T05:55:39.450 回答
1

您是否使用这些配置参数这些即 FileStorePath ?他们通常将所有消息记录到配置文件中提到的文件和文件夹中。还有一个问题,这些日志消息不是你的吗?

在库中,没有很多 cout 语句可以登录到标准输出,而是登录到日志文件。

您关心的 cout 语句在Log.h文件中。您可以将它们注释掉或将它们重定向到文件。

于 2011-06-01T15:44:59.927 回答
0

也许你可以简单地重定向到 /dev/null 我不想从代码中删除它们,因为它们在调试方面有很大帮助。

于 2011-08-30T19:44:53.270 回答