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 above 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 WebSphere Application Server 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 above) // and the server runtime information. eventFactory.getContentHandler().completeEvent(commonBaseEvent);In the above 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 that is 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 that is 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
Related information
Logger.properties file
Common Base Event factory
Reference topic