diff --git a/pom.xml b/pom.xml
index f61bb30..4678aed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
   <packaging>jar</packaging>
   <name>Gerrit Code Review - Audit Listener SL4J Plugin</name>
   <url>http://maven.apache.org</url>
-  <version>2.10.7</version>
+  <version>2.11.7</version>
 
   <build>
     <plugins>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAudit.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAudit.java
index 805562f..0cac3a0 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAudit.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAudit.java
@@ -62,7 +62,7 @@
   private String getFormattedAudit(AuditEvent action) {
     return String.format(
         "%1$s | %2$s | %3$s | %4$s | %5$s | %6$s | %7$s | %8$s | %9$s | %10$s",
-        action.uuid.get(), getFormattedTS(action.when), action.sessionId,
+        action.uuid.uuid(), getFormattedTS(action.when), action.sessionId,
         getFormattedAuditSingle(action.who), getFormattedAuditSingle(action),
         action.what, getFormattedAuditList(action.params),
         getFormattedAuditSingle(action.result),
