diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRenderer.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditFormatRenderer.java
similarity index 95%
rename from src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRenderer.java
rename to src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditFormatRenderer.java
index 293c511..fca60b5 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRenderer.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditFormatRenderer.java
@@ -17,7 +17,7 @@
 import com.google.gerrit.audit.AuditEvent;
 import java.util.Optional;
 
-public interface AuditRenderer {
+public interface AuditFormatRenderer {
 
   String render(AuditEvent auditEvent);
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRenderTypes.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditFormatTypes.java
similarity index 95%
rename from src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRenderTypes.java
rename to src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditFormatTypes.java
index 9d2e2f1..518cc84 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRenderTypes.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditFormatTypes.java
@@ -14,7 +14,7 @@
 
 package com.googlesource.gerrit.plugins.auditsl4j;
 
-public enum AuditRenderTypes {
+public enum AuditFormatTypes {
   CSV,
   JSON;
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToCsv.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToCsv.java
index 1fec09b..68eff99 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToCsv.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToCsv.java
@@ -31,7 +31,7 @@
 import java.util.Set;
 import java.util.TreeSet;
 
-public class AuditRendererToCsv implements AuditRenderer {
+public class AuditRendererToCsv implements AuditFormatRenderer {
   
   private static final SimpleDateFormat dateFmt = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss.SSSS");
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToJson.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToJson.java
index 7047adc..400fd33 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToJson.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/AuditRendererToJson.java
@@ -27,7 +27,7 @@
 import java.util.HashSet;
 import java.util.Optional;
 
-public class AuditRendererToJson implements AuditRenderer {
+public class AuditRendererToJson implements AuditFormatRenderer {
   private final ExclusionStrategy INCLUDE_ONLY_WHITELISTED =
       new ExclusionStrategy() {
         private final HashSet<Class<?>> WHITELIST_CLASSES =
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 5a0b590..94bc55f 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAudit.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAudit.java
@@ -22,12 +22,12 @@
 @Singleton
 public class LoggerAudit implements AuditListener {
   private final AuditWriter auditWriter;
-  private final AuditRenderer auditRenderer;
+  private final AuditFormatRenderer auditRenderer;
 
   public static final String AUDIT_LOGGER_NAME = LoggerAudit.class.getName();
 
   @Inject
-  LoggerAudit(AuditWriter auditWriter, AuditRenderer auditRenderer) {
+  LoggerAudit(AuditWriter auditWriter, AuditFormatRenderer auditRenderer) {
     this.auditWriter = auditWriter;
     this.auditRenderer = auditRenderer;
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/Module.java b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/Module.java
index d70f4ac..436ee37 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/Module.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/auditsl4j/Module.java
@@ -34,13 +34,13 @@
   protected void configure() {
     DynamicSet.bind(binder(), AuditListener.class).to(LoggerAudit.class);
 
-    AuditRenderTypes rendererType = config.getEnum("renderer", AuditRenderTypes.CSV);
+    AuditFormatTypes rendererType = config.getEnum("format", AuditFormatTypes.CSV);
     switch (rendererType) {
       case CSV:
-        bind(AuditRenderer.class).to(AuditRendererToCsv.class);
+        bind(AuditFormatRenderer.class).to(AuditRendererToCsv.class);
         break;
       case JSON:
-        bind(AuditRenderer.class).to(AuditRendererToJson.class);
+        bind(AuditFormatRenderer.class).to(AuditRendererToJson.class);
         break;
       default:
         throw new IllegalArgumentException("Unsupported renderer '" + rendererType + "'");
diff --git a/src/main/resources/Documentation/about.md b/src/main/resources/Documentation/about.md
new file mode 100644
index 0000000..4ad33c2
--- /dev/null
+++ b/src/main/resources/Documentation/about.md
@@ -0,0 +1,4 @@
+This plugin can push the audit events coming from Gerrit into
+a SLF4J appender named com.googlesource.gerrit.plugins.auditsl4j.LoggerAudit.
+
+The audit event object can be saved either in CSV or JSON format.
\ No newline at end of file
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
new file mode 100644
index 0000000..3ec4085
--- /dev/null
+++ b/src/main/resources/Documentation/config.md
@@ -0,0 +1,12 @@
+Audit Configuration
+===================
+
+File `gerrit.config`
+--------------------
+
+The audit configuration can be defined in the main gerrit.config
+in a specific section dedicated to the audit-sl4j plugin.
+
+gerrit.audit-sl4j.format
+:	Output format of the audit record. Can be set to either JSON
+    or CSV. By default, CSV. 
\ No newline at end of file
diff --git a/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToCsvTest.java b/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToCsvTest.java
index df60cab..ecf1432 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToCsvTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToCsvTest.java
@@ -45,7 +45,7 @@
     @Override
     protected void configure() {
       bind(AuditWriter.class).to(AuditWriterToStringList.class);
-      bind(AuditRenderer.class).to(AuditRendererToCsv.class);
+      bind(AuditFormatRenderer.class).to(AuditRendererToCsv.class);
       DynamicSet.bind(binder(), AuditListener.class).to(LoggerAudit.class);
     }
   }
diff --git a/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToJsonTest.java b/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToJsonTest.java
index e8a568f..4b4390e 100644
--- a/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToJsonTest.java
+++ b/src/test/java/com/googlesource/gerrit/plugins/auditsl4j/LoggerAuditToJsonTest.java
@@ -43,7 +43,7 @@
     @Override
     protected void configure() {
       bind(AuditWriter.class).to(AuditWriterToStringList.class);
-      bind(AuditRenderer.class).to(AuditRendererToJson.class);
+      bind(AuditFormatRenderer.class).to(AuditRendererToJson.class);
       DynamicSet.bind(binder(), AuditListener.class).to(LoggerAudit.class);
     }
   }
