For backward compatibility and the convenience of those who do not want to implement the data source design pattern, some data listeners, such as GenericSummarizer, implement the atg.nucleus.logging.LogListener interface in addition to the atg.service.datacollection.DataCollector interface. So you can send data items (that are actually LogEvents) to the data collection facility from any GenericService, simply by configuring one or more Data Listeners as one of the logListeners of your GenericService. Also, by extending LogEvent, your data item can use all features of data collection.