I thought again about what you wrote, and I think I finally - inspired by you - found a solution. Parameters cn1 - cn7 and cs1 - cs7 can appear in each log message, where each parameter is expressed by two fields, eg field cs1Label bears the name of the parameter and its corresponding field cs1 bears the value of this parameter (and similarly for parameters cs2 - cs7 and cn1 - cn7). So the message can contain the following fields: cs1, cs2, cs3, cs4, cs5, cs6, cs7 cs1Label, cs2Label, cs3Label, cs4Label, cs5Label, cs6Label, cs7Label cn1, cn2, cn3, cn4, cn5, cn6, cn7 cn1Label, cn2Label, cn3Label, cn4Label, cn5Label, cn6Label, cn7Label These fields can be in a different order in each message. So in the end I created two REGEXs for each pair of corresponding parameters - eg cs1 and cs1Label: in case the first field in the message is cs1 and cs1Label after it cs1=([^=]+)\s.*cs1Label=([^=]+)(\s|$) for the opposite case, when the first field is cs1Label and cs1 only after it cs1Label=([^=]+)\s.*cs1=([^=]+)(\s|$) And the same for every other pair. This ensures that the data is parsed in any field order. Therefore, the transforms.conf file looks like this: [cs1_named_v1]
SOURCE_KEY = _raw
REGEX = cs1=([^=]+)\s.*cs1Label=([^=]+)(\s|$)
FORMAT = $2::$1
[cs1_named_v2]
SOURCE_KEY = _raw
REGEX = cs1Label=([^=]+)\s.*cs1=([^=]+)(\s|$)
FORMAT = $1::$2
[cn1_named_v1]
SOURCE_KEY = _raw
REGEX = cn1=([^=]+)\s.*cn1Label=([^=]+)(\s|$)
FORMAT = $2::$1
[cn1_named_v2]
SOURCE_KEY = _raw
REGEX = cn1Label=([^=]+)\s.*cn1=([^=]+)(\s|$)
FORMAT = $1::$2
etc. And of course I added the appropriate REPORT commands to props.conf. Thanks again for the inspiration and the effort to help.
... View more