Hi Gonçalo,
The logging of changes are adapted to your needs.
The simplest way is to include CreatedBy, CreatedOn, UpdatedBy, UpdatedOn fields on the entity to record when it was created and by whom and by when it was last updated and by whom.
This of course is not enough for other scenarios were more logging is needed.
In the scenario, you want to keep a copy of the task along time, indeed you would need to create another table, for instance Table_History with the fields from Table, including Table Id, who changed it and when.
With this table, you would have a record of task details along time and when were they changes made.
If that is the case, you better create a wrapper CreateOrUpdateTask that creates or updates the Task record and always creates the respective record in Table_History, so your UI does not have to deal with this logging complexity and to always create the respective history change record.
Hope it helps.
Regards,
João