Back to Devexpress

Audit Trail (History of Data Changes)

expressappframework-112782-data-security-and-safety-audit-trail-module-overview.md

latest2.7 KB
Original Source

Audit Trail (History of Data Changes)

  • Jan 27, 2026
  • 2 minutes to read

The Audit Trail Module logs information on changes made to the persistent objects and stores this information in the application database. You can retrieve information on a specific change type (for example, object creation or update), the author of this change, the modified object, and the previous and new property values.

Windows Forms ASP.NET Core Blazor

Audit Trail System Components

The Audit Trail System includes two ORM-specific modules:

These topics describe how to add the Module to your application and explain ORM-specific behavior.

You can also use the Audit Trail Module in non-XAF applications. For more information, refer to the following example: Audit Trail: Log Data Changes Made via Web API Endpoints

Tracked Changes

The following table lists all changes that the Audit Trail Module logs:

ChangeDescription
ObjectCreatedThe audited object is created.
InitialValueAssignedAn initial value is assigned to the audited object before the first save.
ObjectChangedThe audited object property is changed.
ObjectDeletedThe audited object is deleted.
AddedToCollectionThe audited object is added to a collection.
RemovedFromCollectionThe audited object is removed from a collection.
CollectionObjectChangedAn object from the audited object is changed.
AggregatedObjectChanged (XPO only)An object aggregated with the audited object is changed.
CustomDataCustom data is added to the audit log.

Important Notes

  • The Audit Trail Module logs operations made inside an application only. It does not store the information on modifications made in the database (for example, cascade deletion).
  • This Module manages numerous audited changes in one transaction. This may take significant time to save audit data records and cause performance issues. We recommend that you investigate if this behavior suits your scenario before you use this Module in your application.