process TEST = { service = MessageLogger { vstring destinations = { "detailedInfo.txt" , "critical.txt" , "jobdebug.txt" , "anotherfile.txt" , "cout" , "cerr" } vstring categories = { "unimportant" , "trkwarning" , "serious_matter" } PSet critical.txt = { string threshold = "ERROR" PSet default = { int32 limit = 10 int32 timespan = 180 } PSet serious_matter = { int32 limit = 100000 } } PSet detailedInfo.txt = { string threshold = "INFO" PSet default = { int32 limit = 10 int32 timespan = 60 } PSet WARNING = { int32 limit = 100 int32 timespan = 60 } PSet ERROR = { int32 limit = 100 int32 timespan = 60 } PSet trkwarning = { int32 limit = 20 int32 timespan = 1200 } PSet unimportant = { int32 limit = 5 } PSet serious_matter = { int32 limit = 1000000 } } PSet cerr = { string threshold = "WARNING" } PSet jobdebug.txt = { PSet default = { int32 limit = 1000000 } } PSet anotherfile.txt = { PSet serious_matter = { int32 limit = 1000 } } PSet default = { int32 limit = 10 int32 timespan = 60 } } untracked PSet maxEvents = {untracked int32 input = 10} path p = { myAnalysisModule } module myAnalysisModule = ModuleThatIssuesMessages { } source = EmptySource { } }The PSet default = { ... } parameter, outside the context of any destination, applies to all destinations for which no default limit and timespan are established. This Pset specifies that those destinations should behave as if their default limit and timespan are the given values.
In this example file, the limit of 10 reports of each type of message, and the timespan of 60 seconds, would apply as defaults for cerr, anotherfile.txt, and cout, none of which contain a default in their configuration PSets. (cout in fact has no configuration Pset at all.)
Although in this illustration the PSet default = { ... } parameter appears last, it could validly appear first or in any other place within the service = MessageLogger block but outside any PSet destination block.