Petals Logger Levels
Petals defines a specific level: MONIT.
MONIT level can be used by a log parser to monitor the exchange in Petals ESB.
The levels provided by Petals in descending order are:
- SEVERE (highest value)
- WARNING
- INFO
- CONFIG
- MONIT
- FINE
- FINER
- FINEST (lowest value)
The default root logger level is WARNING. It means that all classes log only SEVERE and WARNING information.
You can enable logging and specify a specific level for each module (container, component, cdk...). Here is how you would set debugging from Petals. You would need to ensure the Handler's level is also set to collect this threshold, so FINEST or ALL should be set.
##Petals level Petals.level = FINEST #Handler Configuration java.util.logging.ConsoleHandler.level = FINEST
Example of configuration to debug (Level FINEST) petals-bc-soap component:
##Petals level Petals.level = INFO #Log level for all petals services Petals.Container.Components.petals-bc-soap.level = FINEST #Log level for petals-bc-soap component #Handler Configuration java.util.logging.ConsoleHandler.level = FINEST
Petals formatters
Petals provides two formatters: PetalsSimpleFormatter and PetalsExtendedFormatter.
PetalsSimpleFormatter uses the following pattern:
YYYY/MM/DD HH:MM:SS,FFF LOG LEVEL LOGGER NAME : ?[LOG MESSAGE]
[EXTRA DATA KEY] = '[EXTRA DATA VALUE]'
[JAVA EXCEPTION]
PetalsExtendedFormatter is used to log message content (payload XML of SOAP or JBI Message), attachments name and properties.
The pattern of PetalsExtendedFormatter inherits from the pattern of PetalsSimpleFormatter.
Example of logging output with PetalsSimpleFormatter:
2011/03/16 14:04:20,829 MONIT [Petals.Container.Components.petals-bc-soap] : External request received
client = '192.168.1.95'
processBranchId = '0'
processInstanceId = 'petals:uid:e871ffb0-4fcd-11e0-b428-00123feb3632'
processLoopId = '0'
requestedUrl = 'http://192.168.1.95:8080/petals/services/LoggerDemoService/'
traceCode = 'MON005'
Example of logging output with PetalsExtendedFormatter:
2011/03/16 15:57:33,798 MONIT [Petals.Container.Components.petals-bc-soap] : External request received
attachmentNames = ''
client = '192.168.1.95'
processBranchId = '0'
processInstanceId = 'petals:uid:b95be910-4fdd-11e0-b678-00123feb3632'
processLoopId = '0'
requestedUrl = 'http://192.168.1.95:8080/petals/services/LoggerDemoService/'
soapEnvelope = '<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:log="http://petals.ow2.org/bpel/LoggerDemo/"><soapenv:Body>
<log:LoggerDemoRequest>
<log:input>test</log:input>
</log:LoggerDemoRequest>
</soapenv:Body></soapenv:Envelope>'
traceCode = 'MON005'
Default behavior One or both previous formatters are always used during execution, unless default handler formatters in ../conf/logger.properties are changed |
If following formatter is applied for both handlers:
java.util.logging.FileHandler.formatter = org.ow2.petals.commons.logger.PetalsSimpleFormatter
java.util.logging.ConsoleHandler.formatter = org.ow2.petals.commons.logger.PetalsSimpleFormatter
All logs are processed by the PetalsSimpleFormatter whether we are in FINEST, SEVERE, CONFIG ... MONIT, but
the both previous log traces are written if the level MONIT is precised.
Specifics log informations
Following informations are commons to both formatters:
- Timestamp
- Logger level
- Logger component name
- Log message
- Process branch identifier
- Process instance identifier
- Process loop identifier
- Trace code
We can found more informations about previous concepts in glossary Glossary
After that, Extended formatter allows to precise more detailled informations, as with SOAP component,
we can recover following additionnal informations:
- Requested URL
- Soap enveloppe content
- Attachment names
- Client IP
Multiple formatter utilizations
We can also use both formatter for different purposes
- If you don't want too much information in Petals console, we can keep the "Simple" formatter with following property:
java.util.logging.ConsoleHandler.formatter = org.ow2.petals.commons.logger.PetalsSimpleFormatter
- If you want more detailled informations accessible at all times prefer the "Extended" formatter in Petals log file with following property:
java.util.logging.FileHandler.formatter = org.ow2.petals.commons.logger.PetalsExtendedFormatter
Appendix
Default loggers.properties
The default loggers.properties is :
# PETALS: PETALS Services Platform # Copyright (C) 2005 EBM WebSourcing # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA. # # Initial developer(s): EBM WebSourcing handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler java.util.logging.FileHandler.level = FINEST java.util.logging.FileHandler.pattern = ${petals.home}/logs/petals.log java.util.logging.FileHandler.formatter = org.ow2.petals.commons.logger.PetalsSimpleFormatter java.util.logging.FileHandler.append = true java.util.logging.ConsoleHandler.level = FINEST java.util.logging.ConsoleHandler.formatter = org.ow2.petals.commons.logger.PetalsSimpleFormatter ##Root level .level = FINEST ##Petals level Petals.level = FINEST #Petals.PetalsAdminService.level = FINEST #Petals.AutoLoaderService.level = FINEST #Petals.ConfigurationService.level = FINEST #Petals.Container.level = FINEST #Petals.Container.ContainerService.level = FINEST #Petals.Container.Components.level = FINEST #Petals.Container.Lifecycle.level = FINEST #Petals.Container.Lifecycle.ComponentLifeCycle.level = FINEST #Petals.Container.Lifecycle.Installer.level = FINEST #Petals.Container.Lifecycle.ServiceAssemblyLifeCycle.level = FINEST #Petals.Container.Lifecycle.SharedLibraryLifeCycle.level = FINEST #Petals.Communication.level = FINEST #Petals.Communication.TopologyService.level = FINEST #Petals.Communication.JNDIAgentService.level = FINEST #Petals.Communication.JNDIService.level = FINEST #Petals.Communication.JMXService.level = FINEST #Petals.Communication.RMIConnector.level = FINEST #Petals.Communication.RemoteCheckerClient.level = FINEST #Petals.Tools.WebServiceManager.level = FINEST #Petals.System.level = FINEST #Petals.System.PersistenceService.level = FINEST #Petals.System.LoaderManagerService.level = FINEST #Petals.System.SystemStateService.level = FINEST #Petals.System.RepositoryService.level = FINEST #Petals.System.Artifact.FractalArtifactRepositoryService.level = FINEST #Petals.JBI-Management.level = FINEST #Petals.JBI-Management.AdminService.level = FINEST #Petals.JBI-Management.SystemRecoveryService.level = FINEST #Petals.JBI-Management.InstallationService.level = FINEST #Petals.JBI-Management.ComponentInstallationService.level = FINEST #Petals.JBI-Management.DeploymentService.level = FINEST #Petals.JBI-Management.AtomicDeploymentService.level = FINEST #Petals.JBI-Management.TransactionManager.level = FINEST #Petals.JBI-Messaging.level = FINEST #Petals.JBI-Messaging.RouterMonitorService.level = FINEST #Petals.JBI-Messaging.RouterService.level = FINEST #Petals.JBI-Messaging.FlowControllerModule.level = FINEST #Petals.JBI-Messaging.FlowFilterModule.level = FINEST #Petals.JBI-Messaging.PriorityOrdererModule.level = FINEST #Petals.JBI-Messaging.TransportResolverModule.level = FINEST #Petals.JBI-Messaging.AuthorizationModule.level = FINEST #Petals.JBI-Messaging.EndpointResolverModule.level = FINEST #Petals.JBI-Messaging.JAASAuthenticationModule.level = FINEST #Petals.JBI-Messaging.PriorityOrdererModule.level = FINEST #Petals.JBI-Messaging.EndpointRegistry.level = FINEST #Petals.JBI-Messaging.JMXExchangeCheckerClient.level = FINEST #Petals.JBI-Component.ComponentContext.level = FINEST #Petals.Transporter.level = FINEST #Petals.Transporter.LocalTransporter.level = FINEST #Petals.Transporter.NioTransporter.level = FINEST #Petals.Transporter.NioTransportProtocol.NioSelectorAgent.level = FINEST #Petals.Transporter.NioTransportProtocol.NioServerAgent.level = FINEST #Petals.Transporter.NioTransportProtocol.NioClientObjectPool.level = FINEST #Petals.WS.level = FINEST #Petals.WS.ArtifactRepositoryService.level = FINEST #Petals.WS.DeploymentService.level = FINEST #Petals.WS.DragonConnectionService.level = FINEST #Petals.WS.EndpointService.level = FINEST #Petals.WS.InformationService.level = FINEST #Petals.WS.InstallationService.level = FINEST #Petals.WS.JBIArtefactsService.level = FINEST #Petals.WS.RuntimeService.level = FINEST #Petals.WS.ServiceAssemblyStateService.level = FINEST #Petals.WS.TopologyService.level = FINEST
Default log4j.properties
The default log4j.properties is :
# Set the options for the Console appender. # Console's layout is a PatternLayout, using the conversion pattern # %d: current date in ISO8601 format # %p: priority of the logging event # %c: category name # %m: the message log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d %-5p %c{3} %m\n # Root logger set to INFO using the Console appender defined above. log4j.rootLogger=fatal,Console ###################### # Logger definitions # ###################### # CXF logger # #log4j.logger.org.apache.cxf=fatal,Console #log4j.additivity.org.apache.cxf=true # Hibernate logger # log4j.logger.org.hibernate=fatal,Console log4j.additivity.org.hibernate=true # Registry logger # log4j.logger.org.ow2.petals.registry=fatal,Console log4j.additivity.org.ow2.petals.registry=true