The LogObjectType is an ObjectType that defines an instance that is used to collect log messages and make them available to a Client. An instance of LogObject can contain LogRecords that were generated internally. It can also contain LogRecords that result from Events that have a ConditionClassId or ConditionSubClassId of LogEntryConditionClassType that are reported by the Object on which the LogObject instance is declared (see 6). The LogObject can also generate Events for LogRecords that were generated internally.
The underlying storage of LogRecords is not defined. The records could be stored as part of an EventHistory, the records could be stored in a SYSLOG or OpenTelemetry or in some application specific manner (See Annex A for illustrations)
Although this specification does not define how data is stored, a requirement to persist LogRecords (i.e. LogRecords will be retained following a restart) is defined in a ConformanceUnit and may be added to a Profile.
The LogObject exposes a Method that allows a Client to retrieve the LogRecords. This Method does not provide complex filtering, only a time range and Severity. It also provides a mask that allows the Client to select which fields in a LogRecord to return and a maximum number of records to return. Some instances of a LogObject may optionally expose HistoricalEvents which would allow a more complex Event retrieval filter (see HistoricalEvent retrieval in OPC 10000-11).
The LogObjectType is illustrated in Figure 3.
Figure 3 – LogObjectType illustration