process TEST = { service = MessageLogger { vstring destinations = { "detailedInfo.txt" , "critical.txt" , "cout" , "cerr" } PSet critical.txt = { string threshold = "ERROR" } PSet detailedInfo.txt = { string threshold = "INFO" } PSet cerr = { string threshold = "WARNING" } } untracked PSet maxEvents = {untracked int32 input = 5} path p = { myAnalysisModule } module myAnalysisModule = ModuleThatIssuesMessages { } source = EmptySource { } }The strings listed in the vstring files list each represent the name of a file destination. Later, optional further configuration can be supplied for each listed destination. This further configuration typically establishes a threshold and/or limits of how often messages are reacted to, and is written as a PSet with name matching the file name.
There need not be a further configuration PSet for every listed destination. (In this example file, there is no further configuration for the cout destination.) Absent further configuration, the destination will react all messages issued.
Also, observe that the orders in which file names are listed and PSet's are provided are arbitrary and need not match.