chiark / gitweb /
update NEWS
[elogind.git] / src / journal-remote / log-generator.py
1 #!/usr/bin/python
2 from __future__ import print_function
3 import sys
4 import argparse
5
6 PARSER = argparse.ArgumentParser()
7 PARSER.add_argument('n', type=int)
8 PARSER.add_argument('--dots', action='store_true')
9 OPTIONS = PARSER.parse_args()
10
11 template = """\
12 __CURSOR=s=6863c726210b4560b7048889d8ada5c5;i=3e931;b=f446871715504074bf7049ef0718fa93;m={m:x};t=4fd05c
13 __REALTIME_TIMESTAMP={realtime_ts}
14 __MONOTONIC_TIMESTAMP={monotonic_ts}
15 _BOOT_ID=f446871715504074bf7049ef0718fa93
16 _TRANSPORT=syslog
17 PRIORITY={priority}
18 SYSLOG_FACILITY={facility}
19 SYSLOG_IDENTIFIER=/USR/SBIN/CRON
20 MESSAGE={message}
21 _UID=0
22 _GID=0
23 _MACHINE_ID=69121ca41d12c1b69a7960174c27b618
24 _HOSTNAME=hostname
25 SYSLOG_PID=25721
26 _PID=25721
27 _SOURCE_REALTIME_TIMESTAMP={source_realtime_ts}
28 DATA={data}
29 """
30
31 m  = 0x198603b12d7
32 realtime_ts = 1404101101501873
33 monotonic_ts = 1753961140951
34 source_realtime_ts = 1404101101483516
35 priority = 3
36 facility = 6
37
38 src = open('/dev/urandom', 'rb')
39
40 bytes = 0
41
42 for i in range(OPTIONS.n):
43     message = repr(src.read(2000))
44     data = repr(src.read(4000))
45
46     entry = template.format(m=m,
47                             realtime_ts=realtime_ts,
48                             monotonic_ts=monotonic_ts,
49                             source_realtime_ts=source_realtime_ts,
50                             priority=priority,
51                             facility=facility,
52                             message=message,
53                             data=data)
54     m += 1
55     realtime_ts += 1
56     monotonic_ts += 1
57     source_realtime_ts += 1
58
59     bytes += len(entry)
60
61     print(entry)
62
63     if OPTIONS.dots:
64         print('.', file=sys.stderr, end='', flush=True)
65
66 if OPTIONS.dots:
67         print(file=sys.stderr)
68 print('Wrote {} bytes'.format(bytes), file=sys.stderr)