Logging
Another predefined logic layer is for logging purposes. Since there is a myriad of loggers out there, we don’t provide any special adapter, but a generic type which can be used to adapt to the logging framework of your choice.
Just create a class and implement EntityLogger
, and you are good to go.
public class JulLogger implements EntityLogger
{
@Override
public void afterUpdate(
final Entity identity,
final Entity data,
final boolean successful)
{
Logger.getLogger(identity.getClass().getName())
.info("Entity updated");
}
}
Additional to afterUpdate
there are further hooks:
-
entityCreated
-
afterRead
-
beforeUpdate
Now just add the logger when creating entities:
JulLogger logger = new JulLogger();
Person john = PersonCreator.New()
.addLayer(logger)
.firstName("John")
.lastName("Doe")
.create();
When you call
PersonUpdater.setLastName(john, "Smith");
the logger’s output is
Oct 15, 2019 11:17:53 AM JulLogger afterUpdate
INFO: Entity updated