@@ -61,39 +61,18 @@ The requirements for the generated log files are the following:
6161
6262## Outputs
6363
64- Given the requisites above, the idea is generating the following files while running:
64+ The basic log can actually be splitted to multiple files.
65+ Such files are splitted in the following files (the idea
66+ is that it can be split when it becomes too big).
6567
66- 1 . ` Basic log `
67-
68- The basic log can actually be splitted to multiple files.
69- Such files are splitted in the following files (the idea
70- is that it can be split when it becomes too big).
71-
72- - ` output.0.rfstream `
73- - ` output.1.rfstream `
74- - ` output.2.rfstream `
75- - ...
76-
77- The file should be always written and flushed at each log entry and
78- it should be consistent even if the process crashes in the meanwhile
79- (meaning that all entries written are valid up to the point of the crash).
80-
81- 2 . ` Errors log `
82-
83- Files in the same format pointing to where an error happened (it should
84- be possible to derive a traceback from that information).
85-
86- - ` robot_out_stream.error.0.rfstream `
87- - ` robot_out_stream.error.1.rfstream `
88-
89- After the processing finished a file is written with all the errors.
90-
91- - ` robot_out_stream.errors.summary.rfstream `
92-
93- Note: for most users just the errors log should be enough, but if something
94- isn't identified as an error, the "Basic log" should provide insight on
95- what actually happened during the full run.
68+ - ` output_0.rfstream `
69+ - ` output_1.rfstream `
70+ - ` output_2.rfstream `
71+ - ...
9672
73+ The file should be always written and flushed at each log entry and
74+ it should be consistent even if the process crashes in the meanwhile
75+ (meaning that all entries written are valid up to the point of the crash).
9776
9877## "Basic log" spec
9978
@@ -126,34 +105,121 @@ Basic message types are:
126105 I "python=3.7"
127106 I "RF=5.7.0"
128107
129- ### M: Memorize name(id, json_string)
108+ ### M: Memorize name(id ':' json_string)
130109
131110 Example:
132111
133112 M SS:"Start Suite" - Identifies the String 'Start Suite' as 'SS' in the logs
134113 M ES:"End Suite" - Identifies the String 'End Suite' as 'ES' in the logs
135-
114+
136115### T: Initial time(isoformat)
137116
138117 Example:
139118
140119 T 2022-10-03T11:30:54.927
141120
142- ### SS: Start Suite(name_id, suite_id_id, suite_source_id, time_delta_in_seconds)
121+ ### SS: Start Suite
143122
144- Example:
123+ Spec: `name:oid, suite_id:oid, suite_source:oid, time_delta_in_seconds:float`
145124
146- M 1:"My Suite"
147- M 2:"my_suite"
148- M 3:"c:/temp/foo/bar/my_suite.robot"
149- SS 1|2|3|0.553
125+ Note: references to oid mean a reference to a previously memorized name.
126+
127+ Note: the time may be given as -1 (if unknown -- later it may be provided
128+ through an "S" message to specify the start time which may be useful
129+ when converting to xml where the status only appears later on in the file
130+ along with the status and not at the suite definition).
131+
132+ Example (were a, b and c are references to previously memorized names):
133+
134+ SS a|b|c|0.333
150135
151136### ES: End Suite
152137
138+ Spec: `status:oid, time_delta_in_seconds:float`
139+
140+ Note: the status (PASS, FAIL, SKIP) is a previously memorized name.
141+
142+ Example:
143+
144+ ES a|0.222
145+
153146### ST: Start Task/test
154147
148+ Spec: `name:oid, suite_id:oid, lineno:int, time_delta_in_seconds:float`
149+
150+ Note: the source (filename) is available through the parent suite_source.
151+
152+ Example:
153+
154+ ST a|b|22|0.332
155+
155156### ET: End Task/Test
156157
158+ Spec: `status:oid, message:oid, time_delta_in_seconds:float`
159+
160+ Example:
161+
162+ ET a|b|0.332
163+
157164### SK: Start Keyword
158165
166+ Spec: `name:oid, libname:oid, keyword_type:oid, doc:oid, source:oid, lineno:int, time_delta_in_seconds:float`
167+
168+ Example:
169+
170+ SK a|b|c|d|e|22|0.444
171+
172+ ### KA: Keyword argument
173+
174+ Spec: `argument:oid`
175+
176+ Example:
177+
178+ KA f
179+
180+ ### AS: Assign keyword call result to a variable
181+
182+ Spec: `assign:oid`
183+
184+ Example:
185+
186+ AS f
187+
159188### EK: End Keyword
189+
190+ Spec: `status:oid, time_delta_in_seconds:float`
191+
192+ Example:
193+
194+ EK a|0.333
195+
196+ ### L: Provide a log message
197+
198+ Spec: `level:level_enum, message:oid, time_delta_in_seconds:float`
199+
200+ level_enum is:
201+ # ERROR = E
202+ # FAIL = F
203+ # INFO = I
204+ # WARN = W
205+
206+ Example:
207+
208+ L E|a|0.123
209+
210+ ### S: Specify the start time (of the containing suite/test/task/keyword)
211+
212+ Spec: `start_time_delta:float`
213+
214+ Example:
215+
216+ S 2.456
217+
218+ ### TG: Apply tag
219+
220+ Spec: `tag:oid`
221+
222+ Example:
223+
224+ TG a
225+
0 commit comments