I have two ways I can achieve this (I am sure I can do a few more, with things building the dynamic type by replacing strings). Both my examples provide two sets of events within a single record, and therefore using an arbitrary "Event Id" to denote the difference records. You may have different ids you wish to use to identify unique records. I've changed the reverse date time and sequence numbers to identify different activities within the same record.
First way is by parsing the keys value pairs using the parse operator. This makes the assumption that all the keys are static and will always be provided. It allows the data to be typed easily while parsing. the \n forces the parse to check at the start of a new line, though may not be needed.
print source =
Reverse date time = 487930544
Sequence number = 2147488705
Component = BSS
Security event = FALSE
Event number = 2177
Event name = Export Configuration Completed
Event class = Software
Event severity = Info
Alarm event = FALSE
Server name = System Management
Function Name =
Hostname = servername
Browser Hostname =
Browser Address =
Operator = software_owner
Session ID = a/dXlasjndlnojqpjorn[wkeokjwpeownokansdlk
Date time = 03/08/22 22:54:08
Alarm status = None
Alarm distribution status = test_DIST_N_A
Alarm date time = 01/01/70 00:00:00
Alarm operator =
Configuration change = FALSE
Display text = Export Successfully Completed for entities: Operator. Total number of occurrence
Length = 95
Record version = 0
Merged text = Export Successfully Completed for entities: Operator. Total number of occurrences exported: 24
Reverse date time = 487930545
Sequence number = 2147488706
Component = BSS
Security event = FALSE
Event number = 2177
Event name = Export Configuration Completed
Event class = Software
Event severity = Info
Alarm event = FALSE
Server name = System Management
Function Name =
Hostname = servername
Browser Hostname =
Browser Address =
Operator = software_owner
Session ID = a/dXlasjndlnojqpjorn[wkeokjwpeownokansdlk
Date time = 03/08/22 22:54:08
Alarm status = None
Alarm distribution status = test_DIST_N_A
Alarm date time = 01/01/70 00:00:00
Alarm operator =
Configuration change = FALSE
Display text = Export Successfully Completed for entities: Operator. Total number of occurrence
Length = 95
Record version = 0
Merged text = Export Successfully Completed for entities: Operator. Total number of occurrences exported: 24
| extend source = split(source, "Reverse date time = ")
| mv-expand source to typeof(string)
| where isnotempty(source)
| extend source = strcat("Reverse date time = ", source)
| parse source with "Reverse date time = " ['Reverse date time']:long
"\nSequence number = " ['Sequence number']:long
"\nComponent = " Component:string
"\nSecurity event = " ['Security event']:bool
"\nEvent number = " ['Event number']:int
"\nEvent name = " ['Event name']:string
"\nEvent class = " ['Event class']:string
"\nEvent severity = " ['Event severity']:string
"\nAlarm event = " ['Alarm event']:bool
"\nServer name = " ['Server name']:string
"\nFunction Name = " ['Function Name']:string
"\nHostname = " Hostname:string
"\nBrowser Hostname = " ['Browser Hostname']:string
"\nBrowser Address = " ['Browser Address']:string
"\nOperator = " Operator:string
"\nSession ID = " ['Session ID']:string
"\nDate time = " ['Date time']:datetime
"\nAlarm status = " ['Alarm status']:string
"\nAlarm distribution status = " ['Alarm distribution status']:string
"\nAlarm date time = " ['Alarm date time']:datetime
"\nAlarm operator = " ['Alarm operator']:string
"\nConfiguration change = " ['Configuration change']:bool
"\nDisplay text = " ['Display text']:string
"\nLength = " Length:int
"\nRecord version = " ['Record version']:int
"\nMerged text = " ['Merged text']:string
| project-away source