Skip to content
Version 6.1.0
Contact Us

Audit Log

An Audit Log object stores a record of auditable actions, such as writes, creates and deletes, along with who did them and what they affected. It joins the notice from the actor with the notice from the target into one record. Clients retrieve the records for review and compliance.

  • A trail of who changed a setpoint
  • A record of object creation and deletion
  • A history of configuration writes for an audit
  • A central log that other devices send notices to
Property What it holds
Enable Starts and stops the recording of new records.
Buffer_Size How many records the log can hold before the oldest are overwritten.
Log_Buffer The stored records. Clients read them with ReadRange or the audit log query service.
Total_Record_Count How many records have ever been added. Each record’s sequence number comes from it.
Record_Count How many records the log holds right now.

The log is a ring buffer: when it is full, new records replace the oldest. With intrinsic reporting, the standard applies no event algorithm to an Audit Log, and unlike the other log types it does not use BUFFER_READY.

Enable it with the STACK_OPTION_OBJECT_TYPE_AUDIT_LOG build option. Add each object with BACnetStack_AddObject; the stack does not serve its property values on its own, so supply them through your property callbacks.

Audit Reporter, Event Log, Trend Log

The properties ASHRAE 135-2024 clause 12.64 defines for this object type.

How to read the table:

  • Conformance is what the standard asks of every object of this type: R is required, W is required and writable by a client, O is optional. A digit after the letter marks a condition in the standard that decides when the property is present or writable, such as support for intrinsic reporting.
  • Present by default: yes means the stack presents the property as soon as you add the object; no means it is optional and you turn it on with BACnetStack_SetPropertyEnabled. This is the stack’s starting setup, so it can differ from the conformance code.
  • Writable is whether a client can write the property by default. Change it with BACnetStack_SetPropertyWritable.
  • not in profile means the stack does not offer this property for this object type.
  • Value when your callback does not answer: “Held by the stack” means the stack stores and serves the value itself and does not ask your callbacks. Otherwise it is the value the stack answers when your callback declines or is not registered.
Property Datatype Conformance Present by default Writable Value when your callback does not answer
Object_Identifier BACnetObjectIdentifier R yes no Held by the stack.
Object_Name CharacterString R yes no "Object <type>,<instance>", such as "Object 0,1" for Analog Input 1.
Object_Type BACnetObjectType R yes no Held by the stack.
Description CharacterString O no no ""
Status_Flags BACnetStatusFlags R yes no Built by the stack from your callbacks.
Event_State BACnetEventState R yes no 0
Reliability BACnetReliability O no no 0
Enable Boolean W yes yes false
Buffer_Size Unsigned32 R yes no 0
Log_Buffer BACnetLIST of BACnetAuditLogRecord R yes no No default: the read fails.
Record_Count Unsigned64 R yes no 0
Total_Record_Count Unsigned64 R yes no 0
Member_Of BACnetDeviceObjectReference O1 no no No default: the read fails.
Delete_On_Forward Boolean O1,2 no no false
Issue_Confirmed_Notifications Boolean O1 no no false
Event_Detection_Enable Boolean O3,4 no no false
Notification_Class Unsigned O3,4 no no 0
Event_Enable BACnetEventTransitionBits O3,4 no no An empty bit string.
Acked_Transitions BACnetEventTransitionBits O3,4 no no An empty bit string.
Notify_Type BACnetNotifyType O3,4 no no 0
Event_Time_Stamps BACnetARRAY[3] of BACnetTimeStamp O3,4 no no No default: the read fails.
Event_Message_Texts BACnetARRAY[3] of CharacterString O4,5 no no ""
Event_Message_Texts_Config BACnetARRAY[3] of CharacterString O4 no no ""
Reliability_Evaluation_Inhibit Boolean O6 no no false
Audit_Level BACnetAuditLevel O7 no no 0
Auditable_Operations BACnetAuditOperationFlags O7 no no An empty bit string.
Property_List BACnetARRAY[N] of BACnetPropertyIdentifier R yes no Held by the stack.
Tags BACnetARRAY[N] of BACnetNameValue O no no No default: the read fails.
Profile_Location CharacterString O no no ""
Profile_Name CharacterString O no no ""