public void logI18nMessageWithUsername(
     final String key, final String username, final String... params) {
   lastModified = new Date(clock.currentTimeMillis());
   AuditLogEntry entry =
       new AuditLogEntryImpl(username, lastModified, key, EntryType.valueOfI18n(key), params);
   try {
     saveEntryAndPurge(entry);
   } catch (IOException e) {
     throw new AuditLoggingException("Failed to log message: " + entry, e);
   }
   log.info(entry.getMessage(i18nResolver));
 }
 public int compare(AuditLogEntry entry1, AuditLogEntry entry2) {
   return entry1.compareTo(entry2);
 }
 public boolean apply(AuditLogEntry entry) {
   return entryTypes.contains(entry.getEntryType());
 }