Generate Common Base Event content with the default event factory
A default Common Base Event content handler populates Common Base Events with WAS runtime information. This content handler can also use a Common Base Event template to populate Common Base Events.
The default content handler is used when the server creates CommonBaseEventLogRecords as would be the case in the following example:
// Get a named logger Logger logger = Logger.getLogger("com.ibm.someLogger"); // Log to the logger -- implicitly the default content handler // will be associated with the CommonBaseEvent contained in the // CommonBaseEventLogRecord. logger.warning("MSG_KEY_001");To specify a Common Base Event template in the previous case, a Logger.properties file would need to be provided with an eventfactory entry for com.ibm.someLogger. If a valid template is found on the classpath, then the Logger's event factory will use the specified template's content in addition to the WAS runtime information when populating Common Base Events. If the template is not found on the classpath, or is invalid, then the Logger's event factory will only use the WAS runtime information when populating Common Base Events.The default content handler is also associated with the event factory home supplied in the global event factory context. This is convenient for creating Common Base Events that need to be populated with content similar to that generated from the WAS:
// Request the event factory from the global event factory home EventFactory eventFactory = EventFactoryContext.getInstance().getEventFactoryHome().getEventFactory(templateName); // Create a Common Base Event CommonBaseEvent commonBaseEvent = eventFactory.createCommonBaseEvent(); // Complete the Common Base Event using content from the template (if specified previously) // and the server runtime information. eventFactory.getContentHandler().completeEvent(commonBaseEvent);In the previous example, if the template referenced by templateName is found on the classpath, and the template is valid, then the event factory home will return an event factory which uses a content handler that combines the template's content with the WAS runtime information when populating Common Base Events. If the template is not found on the classpath, or is invalid, then the event factory home will return an event factory which uses a content handler that uses only the WAS runtime information when populating Common Base Events.The default content handler populates Common Base Events in the server environment with the following runtime information:
- CommonBaseEvent.globalInstanceId
- Value: The unique_record_id
Set this value only if the CommonBaseEvent.globalInstanceId value is null before the completeEvent method is called.
- CommonBaseEvent.msg
- Value: A localized message based on the MsgDataElement element.
Set this value only if the CommonBaseEvent.msg message is null before the completeEvent method is called.
- CommonBaseEvent.severity
- Value: Set based on the value of level set on the CommonBaseEventLogRecord record, if level >= Level.SEVERE, set to 50; if level >= Level.WARNING, set to 30; the default is set to 10.
Set this value only if the CommonBaseEvent.severity value is null before the completeEvent method is called.
- CommonBaseEvent.ComponentIdentification.component
- Value: Set based on the LoggerName value set on the CommonBaseEventLogRecord record.
Set this value only if the CommonBaseEvent.ComponentIdentification.component is null before the completeEvent method is called.
- CommonBaseEvent.ComponentIdentification.componentIdType
- Value: "Unknown"
Set this value only if the CommonBaseEvent.ComponentIdentification.componentIdType value is null before the completeEvent method is called.
- CommonBaseEvent.ComponentIdentification.executionEnvironment
- Value: OSname[OSarch]#OSversion
Set this value only if the CommonBaseEvent.ComponentIdentification.executionEnvironment value is null before the completeEvent method is called.
- CommonBaseEvent.ComponentIdentification.instanceId
- Value: cellName\nodeName\serverName
Set this value only if the CommonBaseEvent.ComponentIdentification.instanceId value is null before the completeEvent method is called. Set only in a server environment because this value is ignored in a client application.
- CommonBaseEvent.ComponentIdentification.location
- Value:The host name
Set this value only if both the CommonBaseEvent.ComponentIdentification.location and the CommonBaseEvent.ComponentIdentification.locationType values are null before the completeEvent method is called.
- CommonBaseEvent.ComponentIdentification.locationType
- Value: The host name
Set this value only if both the CommonBaseEvent.ComponentIdentification.location and the CommonBaseEvent.ComponentIdentification.locationType values are null before the completeEvent method is called.
- CommonBaseEvent.ComponentIdentification.processId
- Value: An internally generated representation of the process number.
Set this value only if the CommonBaseEvent.ComponentIdentification.processId value is null before the completeEvent method is called
- CommonBaseEvent.ComponentIdentification.subComponent
- Value: Set based on values of the sourceClassName and the sourceMethodName names that are set on the sourceClassName.sourceMethodName name of the CommonBaseEventLogRecord record.
Set this value only if the CommonBaseEvent.ComponentIdentification.subComponent values is null before the completeEvent method is called and both the sourceClassName and the sourceMethodName names are set.
- CommonBaseEvent.ComponentIdentification.threadId
- Value: Set to the value of the Java Virtual Machine (JVM) thread name.
Set this value only if the CommonBaseEvent.ComponentIdentification.threadId values is null before the completeEvent value is called.
- CommonBaseEvent.ComponentIdentification.componentType
- Value: http://www.ibm.com/namespaces/autonomic/WebSphereApplicationServer
Set this value only if the CommonBaseEvent.ComponentIdentification.componentType values is null before the completeEvent method is called.
- CommonBaseEvent.MsgDataElement.msgLocale
- Value: Set based on the default locale of the JVM.
Set this value only if the CommonBaseEvent.msg value is null before the completeEvent method is called.
- CommonBaseEvent.Situation.categoryName
- Value: ReportSituation
Set this value only if the CommonBaseEvent.Situation value is null before the completeEvent method is called.
- CommonBaseEvent.Situation.situationType.type
- Value: ReportSituation
Set this value only if the CommonBaseEvent.Situation value is null before the completeEvent method is called.
- CommonBaseEvent.Situation.situationType.reasoningScope
- Value: EXTERNAL
Set this value only if the CommonBaseEvent.Situation value is null before the completeEvent method is called.
- CommonBaseEvent.Situation.situationType.reportCategory
- Value: LOG
Set this value only if the CommonBaseEvent.Situation value is null before the completeEvent method is called.
The sourceComponentIdentification value is populated if no reporterComponentIdentification ID exists when the completeEvent method is invoked on the content handler. Otherwise, the reporterComponentIdentification ID is populated instead.
Related tasks
Logging with Common Base Event API and the Java logging API
Common Base Event factory
Related information:
Logger.properties file