private void logSuccess(DirectorySuccessEvent<?> event) {
        DirectoryEvent.Operation op = event.getOperation();
        switch (op) {

            case GET:
                logger.debug("{} successfully accessed/retrieved {}", new RequestingUser(event), new AffectedObject(event));
                break;

            case ADD:
                if (isPasswordAffected(event))
                    logger.info("{} successfully created {}, setting their password", new RequestingUser(event), new AffectedObject(event));
                else
                    logger.info("{} successfully created {}", new RequestingUser(event), new AffectedObject(event));
                break;

            case UPDATE:
                if (isPasswordAffected(event))
                    logger.info("{} successfully updated {}, changing their password", new RequestingUser(event), new AffectedObject(event));
                else
                    logger.info("{} successfully updated {}", new RequestingUser(event), new AffectedObject(event));
                break;

            case REMOVE:
                logger.info("{} successfully deleted {}", new RequestingUser(event), new AffectedObject(event));
                break;

            default:
                logger.warn("DirectoryEvent operation type has no corresponding log message implemented: {}", op);
                logger.info("{} successfully performed an unknown action on {} {}", new RequestingUser(event), new AffectedObject(event));

        }
    }
Logs that an operation was performed on an object within a Directory
successfully.

@param event
    The event describing the operation successfully performed on the
    object.
guacamole/src/main/java/org/apache/guacamole/event/EventLoggingListener.java