You use ManualLogEntry for creating new log entries and then insert them to database. DatabaseLogEntry is immutable and you can easily construct it with newFromRow. It is used as a value class to process log entries. I suppose RCDatabaseLogEntry is similar but can be constructed from fields selected from the recent changes table.
Thanks. I've updated the documentation based on your descriptions. Feel free to tweak further.