Closes #7
diff --git a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/AbstractEventLogger.java b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/AbstractEventLogger.java
index cda7207..ee203d6 100644
--- a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/AbstractEventLogger.java
+++ b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/AbstractEventLogger.java
@@ -21,6 +21,7 @@
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.audit.catalog.CatalogManager;
 import org.apache.logging.log4j.audit.exception.AuditException;
+import org.apache.logging.log4j.audit.util.NamingUtils;
 import org.apache.logging.log4j.catalog.api.Attribute;
 import org.apache.logging.log4j.catalog.api.Constraint;
 import org.apache.logging.log4j.catalog.api.Event;
@@ -79,28 +80,24 @@
     }
 
     public void logEvent(String eventName, Map<String, String> attributes) {
-        Event event = catalogManager.getEvent(eventName);
-        if (event == null) {
-            throw new AuditException("Unable to locate definition of audit event " + eventName);
-        }
-        logEvent(eventName, attributes, event, defaultAuditExceptionHandler);
+        logEvent(eventName, null, attributes, defaultAuditExceptionHandler);
     }
 
     public void logEvent(String eventName, String catalogId, Map<String, String> attributes) {
-        Event event = catalogManager.getEvent(eventName, catalogId);
-        if (event == null) {
-            throw new AuditException("Unable to locate definition of audit event " + eventName);
-        }
-        logEvent(eventName, attributes, event, defaultAuditExceptionHandler);
+        logEvent(eventName, catalogId, attributes, defaultAuditExceptionHandler);
     }
 
     public void logEvent(String eventName, Map<String, String> attributes, AuditExceptionHandler exceptionHandler) {
-        Event event = catalogManager.getEvent(eventName);
+        logEvent(eventName, null, attributes, exceptionHandler);
+    }
 
+    private void logEvent(String eventName, String catalogId, Map<String, String> attributes, AuditExceptionHandler exceptionHandler) {
+        String eventId = NamingUtils.lowerFirst(eventName);
+        Event event = catalogId == null ? catalogManager.getEvent(eventId) : catalogManager.getEvent(eventId, catalogId);
         if (event == null) {
-            throw new AuditException("Unable to locate definition of audit event " + eventName);
+            throw new AuditException("Unable to locate definition of audit event " + eventId);
         }
-        logEvent(eventName, attributes, event, exceptionHandler);
+        logEvent(eventId, attributes, event, exceptionHandler);
     }
 
     protected abstract void logEvent(StructuredDataMessage message);
diff --git a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java
index 9617956..2362a50 100644
--- a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java
+++ b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java
@@ -84,7 +84,7 @@
      * @return Returns an instance of the Event.
      */
     @SuppressWarnings("unchecked")
-	public static <T> T getEvent(Class<T> intrface) {
+	public static <T extends AuditEvent> T getEvent(Class<T> intrface) {
 
 		Class<?>[] interfaces = new Class<?>[] { intrface };
 
diff --git a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/rest/RequestContextFilter.java b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/rest/RequestContextFilter.java
index 28f922a..f60263b 100644
--- a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/rest/RequestContextFilter.java
+++ b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/rest/RequestContextFilter.java
@@ -79,11 +79,11 @@
         if (servletRequest instanceof HttpServletRequest) {
             HttpServletRequest request = (HttpServletRequest) servletRequest;
             HttpServletResponse response = (HttpServletResponse) servletResponse;
-            logger.info("Starting request {}" + request.getRequestURI());
+            logger.trace("Starting request {}", request.getRequestURI());
             try {
-                Enumeration headers = request.getHeaderNames();
+                Enumeration<String> headers = request.getHeaderNames();
                 while (headers.hasMoreElements()) {
-                    String name = (String) headers.nextElement();
+                    String name = headers.nextElement();
                     RequestContextMapping mapping = mappings.getMappingByHeader(name);
                     logger.debug("Got Mapping:{} for Header:{}", mapping, name);
                     if (mapping != null) {
@@ -99,12 +99,17 @@
                         }
                     }
                 }
-                long start = System.nanoTime();
+                long start = 0;
+                if (logger.isTraceEnabled()) {
+                    start = System.nanoTime();
+                }
                 filterChain.doFilter(servletRequest, servletResponse);
-                long elapsed = System.nanoTime() - start;
-                StringBuilder sb = new StringBuilder("Request ").append(request.getRequestURI()).append(" completed in ");
-                ElapsedUtil.addElapsed(elapsed, sb);
-                logger.info(sb.toString());
+                if (logger.isTraceEnabled()) {
+                    long elapsed = System.nanoTime() - start;
+                    StringBuilder sb = new StringBuilder("Request ").append(request.getRequestURI()).append(" completed in ");
+                    ElapsedUtil.addElapsed(elapsed, sb);
+                    logger.trace(sb.toString());
+                }
             } catch (Throwable e) {
                 logger.error("Application cascaded error", e);
                 response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
diff --git a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/rest/RequestContextHandlerInterceptor.java b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/rest/RequestContextHandlerInterceptor.java
index 173461a..114dbf5 100644
--- a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/rest/RequestContextHandlerInterceptor.java
+++ b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/rest/RequestContextHandlerInterceptor.java
@@ -44,10 +44,10 @@
 
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
-        logger.info("Starting request {}" + request.getRequestURI());
-        Enumeration headers = request.getHeaderNames();
+        logger.trace("Starting request {}", request.getRequestURI());
+        Enumeration<String> headers = request.getHeaderNames();
         while (headers.hasMoreElements()) {
-            String name = (String) headers.nextElement();
+            String name = headers.nextElement();
             RequestContextMapping mapping = mappings.getMappingByHeader(name);
             logger.debug("Got Mapping:{} for Header:{}", mapping, name);
             if (mapping != null) {
@@ -63,17 +63,21 @@
                 }
             }
         }
-        startTime.set(System.nanoTime());
+        if (logger.isTraceEnabled()) {
+            startTime.set(System.nanoTime());
+        }
         return true;
     }
 
     @Override
     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView modelAndView) throws Exception {
-        long elapsed = System.nanoTime() - startTime.get();
-        StringBuilder sb = new StringBuilder("Request ").append(request.getRequestURI()).append(" completed in ");
-        ElapsedUtil.addElapsed(elapsed, sb);
-        logger.info(sb.toString());
-        startTime.remove();
+        if (logger.isTraceEnabled()) {
+            long elapsed = System.nanoTime() - startTime.get();
+            StringBuilder sb = new StringBuilder("Request ").append(request.getRequestURI()).append(" completed in ");
+            ElapsedUtil.addElapsed(elapsed, sb);
+            logger.trace(sb.toString());
+            startTime.remove();
+        }
     }
 
     @Override
diff --git a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
index b497740..3cfca75 100644
--- a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
+++ b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
@@ -94,7 +94,7 @@
         properties.put("fromAccount", "111111");
         properties.put("amount", "111.55");
         try {
-            auditLogger.logEvent("transfer", properties);
+            auditLogger.logEvent("Transfer", properties);
         } catch (Exception ex) {
             ex.printStackTrace();
             fail();
@@ -103,6 +103,7 @@
         assertNotNull("No messages", msgs);
         assertTrue("No messages", msgs.size() == 1);
         String msg = msgs.get(0);
+        assertTrue("Normalized event name", msg.contains("transfer@"));
         assertTrue("No companyId", msg.contains("companyId=\"12345\""));
         assertTrue("No ipAddress", msg.contains("ipAddress=\"127.0.0.1\""));
         assertTrue("No toAccount", msg.contains("toAccount=\"123456\""));
@@ -121,7 +122,7 @@
         Map<String, String> properties = new HashMap<String, String>();
         properties.put("toAccount", "123456");
         properties.put("amount", "111.55");
-        auditLogger.logEvent("transfer", properties);
+        auditLogger.logEvent("Transfer", properties);
     }
 
     @Test
@@ -130,4 +131,4 @@
 
         auditLogger.logEvent("login", null);
     }
-}
\ No newline at end of file
+}
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index bec27d3..b3e265a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -30,6 +30,17 @@
          - "update" - Change
          - "remove" - Removed
     -->
+    <release version="1.0.1" date="YYYY-MM-DD" description="Release 1.0.1">
+      <action issue="LOG4J2-2420" dev="rgoers" type="fix" due-to="Andrei Ivanov">
+        RequestContextFilter logging cleanup.
+      </action>
+      <action issue="LOG4J2-2442" dev="rgoers" type="fix" due-to="Andrei Ivanov">
+        Normalize the event names logged through AbstractEventLogger.logEvent.
+      </action>
+      <action issue="LOG4J2-2431" dev="rgoers" type="fix" due-to="Andrei Ivanov">
+        Narrow the return type of getEvent.
+      </action>
+    </release>
     <release version="1.0.0" date="2018-06-10" description="Release 1.0.0">
     </release>
   </body>