# Annotation Interface CommitLog

@Target(TYPE) @Retention(RUNTIME) @Documented @Inherited public @interface CommitLog
An annotation that enables commit log tracking for a Persistent entity class. Place on entity classes to include them in commit log notifications delivered to `CommitLogListener` implementations.

Since:
  5.0
See Also:
  - `CommitLogListener`

- ## Optional Element Summary

  Optional Elements
  Modifier and Type
  Optional Element
  Description
  `String[]`
  `confidential`
  Properties whose values should be masked in commit log records.
  `boolean`
  `ignoreAttributes`
  When `true`, all attribute changes are excluded from commit log records.
  `String[]`
  `ignoredProperties`
  Properties to exclude from commit log records.
  `boolean`
  `ignoreToManyRelationships`
  When `true`, all to-many relationship changes are excluded from commit log records.
  `boolean`
  `ignoreToOneRelationships`
  When `true`, all to-one relationship changes are excluded from commit log records.

- ## Element Details

  - ### ignoredProperties

    String[] ignoredProperties
    Properties to exclude from commit log records.
    Default:
      `{}`

  - ### ignoreAttributes

    boolean ignoreAttributes
    When `true`, all attribute changes are excluded from commit log records.
    Default:
      `false`

  - ### ignoreToOneRelationships

    boolean ignoreToOneRelationships
    When `true`, all to-one relationship changes are excluded from commit log records.
    Default:
      `false`

  - ### ignoreToManyRelationships

    boolean ignoreToManyRelationships
    When `true`, all to-many relationship changes are excluded from commit log records.
    Default:
      `false`

  - ### confidential

    String[] confidential
    Properties whose values should be masked in commit log records. Changes to these properties are still captured, but old and new values are replaced with `Confidential.getInstance()`.
    Default:
      `{}`