The Kaa Logging subsystem is responsible for collecting records (logs) of pre-configured structure on the endpoints, periodically transferring these logs from endpoints to Operation servers, and, finally, either persisting them on the server for further processing or submitting them to immediate stream analysis. The Kaa logs structure is determined by the configurable log schema.
The Kaa Logging subsystem provides the following features.
- Generation of the logging model and related API calls in the endpoint SDK
- Enforcement of data integrity and validity
- Efficient delivery of logs to Operations servers
- Storing log contents by means of the log appenders configured for the application
The application developer is responsible for designing the log schema and invoking the endpoint logging API from the client application.
The log schema is fully compatible with the Apache Avro schema. There is one log schema defined by default for each Kaa application. This schema supports versioning, therefore, whenever a new log schema is configured on the Kaa server for the application, this new schema gets a new sequence version assigned. The Kaa server maintains compatibility with the older versions of the log schema to ensure proper functioning of the clients that for some reason are not yet upgraded to the latest schema version.
The following examples illustrate basic log schemas.
The simplest definition of a log record with no data fields (mostly useless)
A simple log schema with the log level, tag, and message
Log appenders are responsible for writing logs received by the Operations server into specific storage systems. For further information, see Log appenders.