2010-01-11 68 views
1

我正在构建一个重播日志的工具。手动解析日志很烦人,所以我想知道是否有方法简单地从日志中加载消息。QuickFIX:从日志中加载消息

此外,我不反对只使用第三方重播工具(如果存在)。

+0

哪个日志? * .messages.current.log(或旧版QuickFIX中的* .messages.log)?还是来自FileStore的?你甚至可以使用QuickFIX的一个或两个可选部分(它们可以通过你的配置文件获得)。 – 2010-01-17 01:10:51

+0

无论你告诉我使用什么日志,我都不挑剔,并可以访问所有日志。 – 2010-01-17 09:14:04

+0

你能否澄清你的意思是“重放”?你是否需要一个日志查看器,让你以一种很好的格式查看会话的消息,或者一个应用程序可以解析并将历史消息发送到另一个FIX会话中? – Ani 2011-01-26 08:43:12

回答

6

首先读取日志文件被任何的意思是你想要的,得到各行(有每行一个消息)。

然后建立一个数据字典:

// Use the version of the XML dictionary that is right for you 
FIX::DataDictionary dd("FIX44.XML"); 

然后,对于每一行(为std::string str),建立一个信息:

FIX::Message msg(str, dd, false); 

最后,处理消息就像你FIX ::应用是或更好的,请致电

yourFixApplication.fromApp(msg, mySessionID); 
+1

您可能希望也可能不希望更新消息中的任何时间戳字段。 – shaz 2016-07-30 12:34:35

2

ValidFIX日志分析器是一个在线日志分析器,使一个很好的工作: http://www.validfix.com/fix-log-analyzer.html

+1

曾经是免费的,但现在它的商业。这是一个伟大的工具,有效,快速,基于Web。但现在对个人来说很贵。但对于一家公司来说,它看起来很棒,因为它拥有无限用途和无限用户。 – Wayne 2012-03-13 12:43:33

+0

如果需要以人类可读格式快速显示FIX,请尝试使用http://fixparser.targetcompid.com上的FIX解析器。 – Shahbaz 2013-02-07 04:37:04