Author: chetanm
Date: Fri Feb 13 12:07:57 2015
New Revision: 1659527

URL: http://svn.apache.org/r1659527
Log:
OAK-2516 - Add user information in audit events in oak

Introduced a new logger category 'org.apache.jackrabbit.oak.audit'. Currently 
logs all paths which got changed along with userId

Modified:
    
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java

Modified: 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java?rev=1659527&r1=1659526&r2=1659527&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java
 Fri Feb 13 12:07:57 2015
@@ -70,6 +70,7 @@ import org.slf4j.MarkerFactory;
  */
 public class SessionDelegate {
     static final Logger log = LoggerFactory.getLogger(SessionDelegate.class);
+    static final Logger auditLogger = 
LoggerFactory.getLogger("org.apache.jackrabbit.oak.audit");
     static final Logger readOperationLogger = 
LoggerFactory.getLogger("org.apache.jackrabbit.oak.jcr.operations.reads");
     static final Logger writeOperationLogger = 
LoggerFactory.getLogger("org.apache.jackrabbit.oak.jcr.operations.writes");
 
@@ -589,10 +590,16 @@ public class SessionDelegate {
 
     private static <T> void logOperationDetails(ContentSession session, 
SessionOperation<T> ops) {
         if (readOperationLogger.isTraceEnabled()
-                || writeOperationLogger.isTraceEnabled()) {
+                || writeOperationLogger.isTraceEnabled()
+                || auditLogger.isDebugEnabled()) {
             Marker sessionMarker = MarkerFactory.getMarker(session.toString());
             Logger log = ops.isUpdate() ? writeOperationLogger : 
readOperationLogger;
             log.trace(sessionMarker, "[{}] {}", session, ops);
+
+            //For a logout operation the auth info is not accessible
+            if (!ops.isLogout() && ops.isUpdate()) {
+                auditLogger.debug(sessionMarker, "[{}] [{}] {}", 
session.getAuthInfo().getUserID(), session, ops);
+            }
         }
     }
 


Reply via email to