我parsingexim日志文件,并由于我的处理方法,失去此文件中的所有条目的原始顺序。 我通过他们的交易ID重build交易(即1OfiYX-0000Ev-7k ),但仍然没有办法确定原来的订单。
<= , => , == , **字符的原始顺序问题,对不对? 有没有办法重build订单没有任何额外的信息?
Αντίο
我认为答案仅限于你询问的符号,它总是会在你列出的其他符号之前出现,而消息的“ Completed行将出现在所有这些符号之后。 但是,其他符号== , => , **每一个都可以在<=和Completed之间以任意顺序出现。
有一件事要记住,一条消息可以有多个收件人,每个收件人都可以延期( == ),因此这些符号的顺序对每个收件人都很重要
因此,当消息被本地服务器接受时,每条消息应该有一个<=
每条消息都应该有一个Completed行,表示本地服务器已经完成了消息
那些之间:
每条消息:收件人将只有** (失败)或=> (已发送)中的一个。 这将是该特定消息的最后一个条目:收件人。
每条消息:收件人可能有一个或多个== (延迟)行。 如果消息:收件人有一个==日志行,则会在该消息之前发生:收件人=>或**行。
在给定的信息中,不同的收件人的顺序只有在你认为重要的时候才有意义。
Exim附带工具来帮助进行日志文件分析。 特别是,exigrep可能会引起兴趣,因为它可以search一行中的模式,然后显示该消息的所有日志行,包括匹配行之前的日志行。
Exim附带文档“Exim Specification”; 至less应该有一个名为“spec.txt”的文件,如果不是.pdf或其他变体, 这也在网上http://www.exim.org/ ; 您可能会发现“49.日志文件”,logging日志文件的确切格式,以及“50. Exim公用程序”是有用的。
每个日志行都有一个时间戳。 按exim message-id分组,然后按时间戳sorting,并返回原始订单。
是的,因为他们指出了消息stream的方向。 您需要改进处理方法,不要重新sorting条目。
您是否尝试过使用其中一个可用的日志文件parsing器,例如awstats或sawmill 。