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 service = MessageLogger { ... } parameter tells the framework that you wish to have available the MessageLogger service. Parameters configuring that service appear between the braces.
These configuration directives take effect once the MessageLogger service has been initialized. All messages issued prior to that point (for example, any messages issued in the course of reading parameters) will go to cerr.
Although messages can be issued without having asked for the service, it is strongly recommended that jobs which may send messages include this in their .cfg file.