Also, take a look at c2cpel and cpeldump. The first allows you to convert log files to cpel files while the second converts cpel to text.
Hope this helps, Florin > On Oct 8, 2018, at 9:22 AM, Damjan Marion via Lists.Fd.Io > <[email protected]> wrote: > > > -- > Damjan > >> On 8 Oct 2018, at 07:37, Aleksander Djuric <[email protected] >> <mailto:[email protected]>> wrote: >> >> Hi Everyone! >> >> I am trying to parse binary ELOG file, but have no success. >> Is there someone who know something about ELOG file format? >> At now I'm trying to get the unix timestamp of the each event. >> >> I had found small python script here: >> https://github.com/theleos88/vpp-bench/wiki/ELOG >> <https://github.com/theleos88/vpp-bench/wiki/ELOG> >> ...but it's not work for me. >> >> The event definition in my case looks like: >> ELOG_TYPE_DECLARE (el) = { >> .format = "test [%d]: event", >> .format_args = "i4", >> }; >> >> Just for test this event prints always number "234" >> For parsing the binary log I had written the code based on the script I have >> mentioned above: >> >> #!/usr/bin/python -d >> import io >> import binascii >> import os >> import mmap >> import itertools >> import struct >> import sys >> import time >> infil = '/tmp/test.log' >> def parse_int(itr, size): >> int_str = [] >> for i in range(0,size): >> int_str.append( next(itr)) >> d = b"".join(int_str) >> return int(binascii.hexlify(d), 16) >> def parse_double(itr): >> int_str = [] >> for i in range(0,8): >> int_str.append(next(itr)) >> d = b"".join(int_str) >> return struct.unpack('d', d)[0] >> if __name__ == '__main__': >> with open(infil, 'rb') as f: >> # memory-map the file, size 0 means whole file >> mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) >> itr = iter(mm) >> for b in itr: >> if (b == b'@'): >> try: >> e = parse_int(itr, 3) # Binary file dependent >> d = parse_int(itr, 4) # Data >> ts = parse_double(itr) # Timestamp >> print ("Id:",e,"Data",d,"TS",ts) >> except: >> print ("fail") >> mm.close() >> >> The script output looks very strange: >> >> ('Id:', 12583082, 'Data', 4077750898, 'TS', -2.033971772667215e+189) >> ('Id:', 4913710, 'Data', 234, 'TS', 6.36910374265963e-272) >> ('Id:', 4946789, 'Data', 234, 'TS', -3.781860196468732e+215) >> ('Id:', 4980415, 'Data', 234, 'TS', 2.8913004726712464e+252) >> ('Id:', 5014033, 'Data', 234, 'TS', 1.0459787848697367e-194) >> ('Id:', 5047603, 'Data', 234, 'TS', 1.8541854501616871e+87) >> ('Id:', 5081197, 'Data', 234, 'TS', -1.9417949536011382e+216) >> ('Id:', 5114754, 'Data', 234, 'TS', -1.1766415030126902e-236) >> ('Id:', 5148346, 'Data', 234, 'TS', 2.805116355676246e-134) >> ('Id:', 5181997, 'Data', 234, 'TS', 1.2734961345447485e-257) >> fail >> >> 1) It seems that the first and the last line of the log has a different >> format (???). >> 2) I can't understand the format of the timestamp field (or these 8 bytes is >> not a timestamp). >> 3) Data prints correctly. >> >> Could anyone help me please? >> Thanks in advance, >> Aleksander > > Looking into g2 source might be good start. g2 is GTK based elog graphical > viewer... > > https://git.fd.io/vpp/tree/src/tools/g2 > <https://git.fd.io/vpp/tree/src/tools/g2> > > -- > Damjan > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > > View/Reply Online (#10770): https://lists.fd.io/g/vpp-dev/message/10770 > <https://lists.fd.io/g/vpp-dev/message/10770> > Mute This Topic: https://lists.fd.io/mt/26875131/675152 > <https://lists.fd.io/mt/26875131/675152> > Group Owner: [email protected] <mailto:[email protected]> > Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub > <https://lists.fd.io/g/vpp-dev/unsub> [[email protected] > <mailto:[email protected]>] > -=-=-=-=-=-=-=-=-=-=-=-
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#10771): https://lists.fd.io/g/vpp-dev/message/10771 Mute This Topic: https://lists.fd.io/mt/26875131/21656 Group Owner: [email protected] Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
