continuum-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jzurb...@apache.org
Subject svn commit: r763464 - in /continuum/trunk: continuum-purge/ continuum-purge/src/main/java/org/apache/continuum/purge/ continuum-purge/src/main/java/org/apache/continuum/purge/executor/ continuum-webapp/src/main/java/org/apache/continuum/web/util/ conti...
Date Wed, 08 Apr 2009 23:57:05 GMT
Author: jzurbano
Date: Wed Apr  8 23:57:04 2009
New Revision: 763464

URL: http://svn.apache.org/viewvc?rev=763464&view=rev
Log:
CONTINUUM-1853 Provide an audit log

Added:
    continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/AuditLogConstants.java
  (with props)
Modified:
    continuum/trunk/continuum-purge/pom.xml
    continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/ContinuumPurgeConstants.java
    continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/AbstractContinuumPurgeExecutor.java
    continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/CleanAllPurgeExecutor.java
    continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/DaysOldDirectoryPurgeExecutor.java
    continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/ReleasedSnapshotsRepositoryPurgeExecutor.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildProjectAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ContinuumActionSupport.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/DeleteProjectAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectEditAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectsListAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseRollbackAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
    continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
    continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml
    continuum/trunk/continuum-webapp/src/main/resources/log4j.xml

Modified: continuum/trunk/continuum-purge/pom.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-purge/pom.xml?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-purge/pom.xml (original)
+++ continuum/trunk/continuum-purge/pom.xml Wed Apr  8 23:57:04 2009
@@ -86,6 +86,11 @@
         </exclusion>
       </exclusions>
     </dependency>
+    <dependency>
+      <groupId>org.slf4j</groupId>
+      <artifactId>slf4j-log4j12</artifactId>
+      <scope>runtime</scope>
+    </dependency>
     
     <!-- === Testing Dependencies === -->
     <dependency>

Modified: continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/ContinuumPurgeConstants.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/ContinuumPurgeConstants.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/ContinuumPurgeConstants.java
(original)
+++ continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/ContinuumPurgeConstants.java
Wed Apr  8 23:57:04 2009
@@ -31,4 +31,16 @@
     public static final String PURGE_DIRECTORY_RELEASES = "releases";
 
     public static final String PURGE_DIRECTORY_BUILDOUTPUT = "buildOutput";
+    
+    public static final String PURGE = "PURGE";
+    
+    public static final String PURGE_REPO_CONTENTS = "Purge All Repository Contents";
+    
+    public static final String PURGE_DIR_CONTENTS = "Purge All Directory Contents";
+   
+    public static final String PURGE_ARTIFACT = "Purge Artifact File";
+    
+    public static final String PURGE_FILE = "Purge Support File";
+    
+    public static final String PURGE_PROJECT = "Purge Project";
 }

Modified: continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/AbstractContinuumPurgeExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/AbstractContinuumPurgeExecutor.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/AbstractContinuumPurgeExecutor.java
(original)
+++ continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/AbstractContinuumPurgeExecutor.java
Wed Apr  8 23:57:04 2009
@@ -20,6 +20,7 @@
  */
 
 import org.apache.continuum.purge.repository.content.RepositoryManagedContent;
+import org.apache.continuum.purge.ContinuumPurgeConstants;
 import org.apache.maven.archiva.consumers.core.repository.ArtifactFilenameFilter;
 import org.apache.maven.archiva.model.ArtifactReference;
 import org.slf4j.Logger;
@@ -37,8 +38,10 @@
 public abstract class AbstractContinuumPurgeExecutor
     implements ContinuumPurgeExecutor
 {
-    private Logger log = LoggerFactory.getLogger( AbstractContinuumPurgeExecutor.class );
+    private static final char DELIM = ' ';
     
+    private Logger logger = LoggerFactory.getLogger( "AuditLog" );
+
     public void purge( Set<ArtifactReference> references, RepositoryManagedContent
repository )
     {
         if ( references != null && !references.isEmpty() )
@@ -47,7 +50,7 @@
             {
                 File artifactFile = repository.toFile( reference );
                 artifactFile.delete();
-                log.info( "Purge artifact " + artifactFile.getName() );
+                triggerAuditEvent( artifactFile.getName(), ContinuumPurgeConstants.PURGE_ARTIFACT
);
                 purgeSupportFiles( artifactFile, artifactFile.getName() );
                 // purge maven metadata
                 purgeSupportFiles( artifactFile.getParentFile(), "maven-metadata" );
@@ -83,8 +86,15 @@
             if ( file.exists() && file.isFile() )
             {
                 file.delete();
-                log.info( "Purge support file: " + file.getName() );
+                triggerAuditEvent( file.getName(), ContinuumPurgeConstants.PURGE_FILE );
             }
         }
     }
-}
\ No newline at end of file
+    
+    protected void triggerAuditEvent( String resource, String action )
+    {
+        String msg = ContinuumPurgeConstants.PURGE + DELIM + "<continuum>" + DELIM
+ '\"' + resource + '\"' + DELIM + '\"' + action + '\"';
+        
+        logger.info( msg );
+    }
+}

Modified: continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/CleanAllPurgeExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/CleanAllPurgeExecutor.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/CleanAllPurgeExecutor.java
(original)
+++ continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/CleanAllPurgeExecutor.java
Wed Apr  8 23:57:04 2009
@@ -71,6 +71,7 @@
             throw new ContinuumPurgeExecutorException( "Error while purging all artifacts
or directories in " + path,
                                                        e );
         }
+        triggerAuditEvent( path, ContinuumPurgeConstants.PURGE_REPO_CONTENTS );
     }
 
     private void purgeReleases( String path )
@@ -87,6 +88,7 @@
             for ( File releaseDir : releasesDir )
             {
                 FileUtils.deleteDirectory( releaseDir );
+                triggerAuditEvent( releaseDir.getName(), ContinuumPurgeConstants.PURGE_DIR_CONTENTS
);
             }
         }
         catch ( IOException e )
@@ -109,6 +111,7 @@
             for ( File projectDir : projectsDir )
             {
                 FileUtils.cleanDirectory( projectDir );
+                triggerAuditEvent( projectDir.getName(), ContinuumPurgeConstants.PURGE_DIR_CONTENTS
);
             }
         }
         catch ( IOException e )

Modified: continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/DaysOldDirectoryPurgeExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/DaysOldDirectoryPurgeExecutor.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/DaysOldDirectoryPurgeExecutor.java
(original)
+++ continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/DaysOldDirectoryPurgeExecutor.java
Wed Apr  8 23:57:04 2009
@@ -99,6 +99,7 @@
             {
                 try
                 {
+                    triggerAuditEvent( dir.getName(), ContinuumPurgeConstants.PURGE_DIR_CONTENTS
);
                     FileUtils.deleteDirectory( dir );
                     countToPurge--;
                 }
@@ -146,10 +147,12 @@
                     try
                     {
                         FileUtils.deleteDirectory( buildDir );
+                        triggerAuditEvent( buildDir.getName(), ContinuumPurgeConstants.PURGE_DIR_CONTENTS
);
                         File logFile = new File( buildDir.getAbsoluteFile() + ".log.txt"
);
 
                         if ( logFile.exists() )
                         {
+                            triggerAuditEvent( logFile.getName(), ContinuumPurgeConstants.PURGE_FILE
);
                             logFile.delete();
                         }
 

Modified: continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/ReleasedSnapshotsRepositoryPurgeExecutor.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/ReleasedSnapshotsRepositoryPurgeExecutor.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/ReleasedSnapshotsRepositoryPurgeExecutor.java
(original)
+++ continuum/trunk/continuum-purge/src/main/java/org/apache/continuum/purge/executor/ReleasedSnapshotsRepositoryPurgeExecutor.java
Wed Apr  8 23:57:04 2009
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.continuum.purge.ContinuumPurgeConstants;
 import org.apache.continuum.purge.repository.content.RepositoryManagedContent;
 import org.apache.maven.archiva.common.utils.VersionComparator;
 import org.apache.maven.archiva.common.utils.VersionUtil;
@@ -106,6 +107,8 @@
                 {
                     versionRef.setVersion( version );
                     repository.deleteVersion( versionRef );
+                    
+                    triggerAuditEvent( VersionedReference.toKey( versionRef ), ContinuumPurgeConstants.PURGE_PROJECT
);
 
                     removeMetadata( versionRef );
                 }
@@ -131,4 +134,4 @@
 
         purgeSupportFiles( projectDir, "maven-metadata" );
     }
-}
\ No newline at end of file
+}

Added: continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/AuditLogConstants.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/AuditLogConstants.java?rev=763464&view=auto
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/AuditLogConstants.java
(added)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/AuditLogConstants.java
Wed Apr  8 23:57:04 2009
@@ -0,0 +1,75 @@
+package org.apache.continuum.web.util;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+public class AuditLogConstants
+{
+    public static final String PROJECT = "PROJECT";
+
+    public static final String SCHEDULE = "BUILD_SCHEDULE";
+
+    public static final String TEMPLATE = "BUILD_TEMPLATE";
+
+    public static final String BUILD_DEFINITION = "BUILD_DEFINITION";
+    
+    // events
+    public static final String FORCE_BUILD = "Forced Project Build";
+
+    public static final String CANCEL_BUILD = "Cancelled Project Build";
+
+    public static final String CI_BUILD = "Scheduled Project Build";
+
+    public static final String PREPARE_RELEASE = "Prepare Project Release";
+
+    public static final String PERFORM_RELEASE = "Perform Project Release";
+
+    public static final String ROLLBACK_RELEASE = "Rollback Project Release";
+
+    public static final String ADD_M2_PROJECT = "Added M2 Project";
+
+    public static final String MODIFY_PROJECT = "Modified Project";
+
+    public static final String REMOVE_PROJECT = "Removed Project";
+
+    public static final String ADD_PROJECT_GROUP = "Added Project Group";
+
+    public static final String MODIFY_PROJECT_GROUP = "Modified Project Group";
+
+    public static final String REMOVE_PROJECT_GROUP = "Removed Project Group";
+
+    public static final String MODIFY_SCHEDULE = "Modified Build Schedule";
+
+    public static final String ADD_SCHEDULE = "Added Build Schedule";
+
+    public static final String REMOVE_SCHEDULE = "Removed Build Schedule";
+
+    public static final String ADD_GOAL = "Added Build Definition";
+
+    public static final String MODIFY_GOAL = "Modified Build Definition";
+
+    public static final String REMOVE_GOAL = "Removed Build Definition";
+
+    public static final String ADD_TEMPLATE = "Added Build Definition Template";
+
+    public static final String MODIFY_TEMPLATE = "Modified Build Definition Template";
+
+    public static final String REMOVE_TEMPLATE = "Removed Build Definition Template";
+}
+

Propchange: continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/AuditLogConstants.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddMavenTwoProjectAction.java
Wed Apr  8 23:57:04 2009
@@ -19,12 +19,17 @@
  * under the License.
  */
 
+import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileReader;
+import java.io.InputStreamReader;
 import java.io.IOException;
 import java.util.List;
+import java.net.URL;
+import java.net.MalformedURLException;
 
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
 import org.apache.maven.continuum.project.builder.ContinuumProjectBuildingResult;
@@ -58,9 +63,15 @@
         throws ContinuumException
     {
         ContinuumProjectBuildingResult result = null;
+        
+        String groupId = "";
+        
+        String artifactId = "";
+        
+        String resource = "";
 
         // TODO: remove this part once uploading of an m2 project with modules is supported
( CONTINUUM-1098 )
-        if ( checkProtocol == false )
+        if ( ( checkProtocol == false ) || ( ( checkProtocol == true ) && ( pomUrl.startsWith(
FILE_SCHEME ) ) ) )
         {
             MavenXpp3Reader m2pomReader = new MavenXpp3Reader();
 
@@ -80,10 +91,14 @@
                 }
 
                 Model model = m2pomReader.read( new FileReader( filePath ) );
+                
+                groupId = model.getGroupId();
+                artifactId = model.getArtifactId();
+                resource =  groupId + ":" + artifactId;
 
                 List modules = model.getModules();
 
-                if ( modules != null && modules.size() != 0 )
+                if ( ( checkProtocol == false ) && ( modules != null && modules.size()
!= 0 ) )
                 {
                     result = new ContinuumProjectBuildingResult();
                     result.addError( ERROR_UPLOADING_M2_PROJECT_WITH_MODULES );
@@ -102,12 +117,49 @@
                 throw new ContinuumException( ERROR_READING_POM_EXCEPTION_MESSAGE, e );
             }
         }
+        else
+        {
+            if ( ( pomUrl.startsWith( "http" ) ) && ( pomUrl.endsWith( "pom.xml"
) ) )
+            {
+                try
+                {
+                    URL url = new URL( pomUrl );
+                    BufferedReader in = new BufferedReader( new InputStreamReader( url.openStream()
) );
+                    StringBuilder content = new StringBuilder();
+                    String line = in.readLine();
+                    
+                    while ( line != null )
+                    {
+                        content.append( line );
+                        line = in.readLine();
+                    }
+                    in.close();
+                   
+                    if ( content.length() > 0 )
+                    {
+                        groupId = getSubString( content.toString(), "<groupId>", "</groupId>"
);
+                        artifactId = getSubString( content.toString(), "<artifactId>",
"</artifactId>" );
+                        resource = groupId + ":" + artifactId;
+                    }
+                }
+                catch ( MalformedURLException e )
+                {
+                    addActionError( ERROR_READING_POM_EXCEPTION_MESSAGE );
+                }
+                catch ( IOException e )
+                {
+                    throw new ContinuumException( ERROR_READING_POM_EXCEPTION_MESSAGE, e
);
+                }
+            }
+        }
 
         if ( result == null )
         {
             result = getContinuum().addMavenTwoProject( pomUrl, selectedProjectGroup, checkProtocol,
scmUseCache,
                                                         !this.isNonRecursiveProject(), this.getBuildDefinitionTemplateId()
);
         }
+        
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, resource, AuditLogConstants.ADD_M2_PROJECT
);
 
         return result;
     }
@@ -159,5 +211,16 @@
     {
         this.nonRecursiveProject = nonRecursiveProject;
     }
+    
+    private String getSubString( String content, String tagStart, String tagEnd )
+    {
+        String subString = "";
+        
+        int start = content.indexOf( tagStart ) + tagStart.length();
+        int end = content.indexOf( tagEnd );
+        subString = content.substring( start, end );
+        
+        return subString;
+    }
 
 }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectGroupAction.java
Wed Apr  8 23:57:04 2009
@@ -24,6 +24,7 @@
 
 import org.apache.continuum.model.repository.LocalRepository;
 import org.apache.continuum.repository.RepositoryServiceException;
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.ProjectGroup;
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
@@ -154,6 +155,8 @@
 
             return ERROR;
         }
+        
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, name, AuditLogConstants.ADD_PROJECT_GROUP
);
 
         return SUCCESS;
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildDefinitionAction.java
Wed Apr  8 23:57:04 2009
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.builddefinition.BuildDefinitionService;
 import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
@@ -314,6 +315,10 @@
             addActionError( authzE.getMessage() );
             return REQUIRES_AUTHORIZATION;
         }
+        
+        Project proj = getContinuum().getProject( projectId );
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.BUILD_DEFINITION, proj.getGroupId()
+ ":" +
+                           proj.getArtifactId() + ":" + goals + " " + arguments, AuditLogConstants.ADD_GOAL
);
 
         if ( groupBuildView )
         {
@@ -361,6 +366,8 @@
 
         if ( projectId != 0 )
         {
+            triggerAuditEvent( getPrincipal(), AuditLogConstants.BUILD_DEFINITION, getProjectGroupName()
+ ":" +
+                               goals + " " + arguments, AuditLogConstants.ADD_GOAL );
             return SUCCESS;
         }
         else
@@ -379,6 +386,10 @@
             if ( confirmed )
             {
                 getContinuum().removeBuildDefinitionFromProject( projectId, buildDefinitionId
);
+                
+                Project proj = getContinuum().getProject( projectId );
+                triggerAuditEvent( getPrincipal(), AuditLogConstants.BUILD_DEFINITION, proj.getGroupId()
+ ":" +
+                                   proj.getArtifactId() + ":" + goals + " " + arguments,
AuditLogConstants.REMOVE_GOAL );
 
                 return SUCCESS;
             }
@@ -407,6 +418,9 @@
             if ( confirmed )
             {
                 getContinuum().removeBuildDefinitionFromProjectGroup( projectGroupId, buildDefinitionId
);
+                
+                triggerAuditEvent( getPrincipal(), AuditLogConstants.BUILD_DEFINITION, getProjectGroupName()
+ ":" +
+                                   goals + " " + arguments, AuditLogConstants.REMOVE_GOAL
);
 
                 return SUCCESS;
             }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildProjectAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildProjectAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildProjectAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/BuildProjectAction.java
Wed Apr  8 23:57:04 2009
@@ -20,7 +20,9 @@
  */
 
 import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
@@ -89,6 +91,9 @@
                 return "to_project_page";
             }
         }
+        
+        Project proj = getContinuum().getProject( projectId );
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, proj.getGroupId() +
":" + proj.getArtifactId(), AuditLogConstants.FORCE_BUILD );
 
         return SUCCESS;
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/CancelBuildAction.java
Wed Apr  8 23:57:04 2009
@@ -30,6 +30,7 @@
 import org.apache.continuum.buildmanager.BuildsManager;
 import org.apache.continuum.model.project.ProjectScmRoot;
 import org.apache.continuum.taskqueue.BuildProjectTask;
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
@@ -66,6 +67,10 @@
 	        BuildsManager buildsManager = getContinuum().getBuildsManager();
 	        
 	        buildsManager.cancelBuild( projectId );
+	        
+	        Project proj = getContinuum().getProject( projectId );
+
+          triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, proj.getGroupId()
+ ":" + proj.getArtifactId(), AuditLogConstants.CANCEL_BUILD );
 	    }
 	    catch ( AuthorizationRequiredException e )
 	    {
@@ -103,6 +108,11 @@
 	        if ( index > 0 )
 	        {
 	            getContinuum().getBuildsManager().cancelBuild( projectsId[index] );
+	            
+	            int projId = projectsId[index];
+              getContinuum().getBuildsManager().cancelBuild( projectsId[index] );
+              Project proj = getContinuum().getProject( projId );
+              triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, proj.getGroupId()
+ ":" + proj.getArtifactId(), AuditLogConstants.CANCEL_BUILD );
 	        }
 	        
 	    }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ContinuumActionSupport.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ContinuumActionSupport.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ContinuumActionSupport.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ContinuumActionSupport.java
Wed Apr  8 23:57:04 2009
@@ -34,6 +34,9 @@
 import org.codehaus.plexus.redback.system.SecuritySystemConstants;
 import org.codehaus.plexus.util.StringUtils;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * ContinuumActionSupport
  *
@@ -67,6 +70,10 @@
     private Continuum continuum;
     
     protected SimpleDateFormat dateFormatter = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss
aaa z");
+    
+    private Logger logger = LoggerFactory.getLogger( "AuditLog" );
+    
+    private static final char DELIM = ' ';
 
     public void prepare()
         throws Exception
@@ -541,5 +548,39 @@
     protected ResourceBundle getResourceBundle()
     {
         return getTexts( "localization/Continuum" );
+    }
+    
+    protected String getPrincipal()
+    {
+        String principal = "guest";
+        
+        if ( getSecuritySession() != null )
+        {
+            if ( getSecuritySession().getUser() != null )
+            {
+                principal = (String) getSecuritySession().getUser().getPrincipal();
+            }
+        }
+        else
+        {
+            principal = "unknown-user";
+        }
+        return principal;
+    }
+    
+    /*
+     * resource formats:
+     *   project - {groupId}:{artifactId}
+     *           - {groupId}:{artifactId}:{version} for release prepare/perform
+     *   project group - {group_name}
+     *   build definition - {project_group}:{goals}
+     *   schedule - {name}:(cron)
+     */
+    protected void triggerAuditEvent( String user, String category, String resource, String
action )
+    {
+        
+        String msg = category + DELIM + user + DELIM + '\"' + resource + '\"' + DELIM + '\"'
+ action + '\"';
+        
+        logger.info( msg );
     }    
 }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/DeleteProjectAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/DeleteProjectAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/DeleteProjectAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/DeleteProjectAction.java
Wed Apr  8 23:57:04 2009
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
@@ -50,6 +51,10 @@
         {
             return REQUIRES_AUTHORIZATION;
         }
+        
+        Project proj = getContinuum().getProject( projectId );
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, proj.getGroupId() +
":" +
+                           proj.getArtifactId(), AuditLogConstants.REMOVE_PROJECT );
 
         getContinuum().removeProject( projectId );
 

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectEditAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectEditAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectEditAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectEditAction.java
Wed Apr  8 23:57:04 2009
@@ -19,6 +19,7 @@
  * under the License.
  */
 
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
@@ -78,6 +79,9 @@
         project.setScmTag( scmTag );
 
         getContinuum().updateProject( project );
+        
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, project.getGroupId()
+ ":" +
+                           project.getArtifactId(), AuditLogConstants.MODIFY_PROJECT );
 
         return SUCCESS;
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectGroupAction.java
Wed Apr  8 23:57:04 2009
@@ -34,6 +34,7 @@
 import org.apache.continuum.buildmanager.BuildsManager;
 import org.apache.continuum.model.project.ProjectScmRoot;
 import org.apache.continuum.model.repository.LocalRepository;
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.BuildResult;
@@ -313,6 +314,8 @@
             name = getProjectGroupName();
             return CONFIRM;
         }
+        
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, getProjectGroupName(),
AuditLogConstants.REMOVE_PROJECT_GROUP );
 
         return SUCCESS;
     }
@@ -536,6 +539,8 @@
                 getContinuum().updateProject( project );
             }
         }
+        
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, getProjectGroupName(),
AuditLogConstants.MODIFY_PROJECT_GROUP );
 
         return SUCCESS;
     }
@@ -561,6 +566,8 @@
         {
             getContinuum().buildProjectGroupWithBuildDefinition( projectGroupId, buildDefinitionId
);
         }
+        
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, getProjectGroupName(),
AuditLogConstants.FORCE_BUILD );
 
         if ( this.isFromSummaryPage() )
         {

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectsListAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectsListAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectsListAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ProjectsListAction.java
Wed Apr  8 23:57:04 2009
@@ -23,6 +23,7 @@
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.BuildDefinition;
 import org.apache.maven.continuum.model.project.Project;
@@ -98,7 +99,9 @@
 
                 try
                 {
-                    logger.info( "Removing Project with id=" + projectId );
+                    Project proj = getContinuum().getProject( projectId );
+                    triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, proj.getGroupId()
+ ":" +
+                                       proj.getArtifactId(), AuditLogConstants.REMOVE_PROJECT
);
 
                     getContinuum().removeProject( projectId );
                 }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePerformAction.java
Wed Apr  8 23:57:04 2009
@@ -25,6 +25,7 @@
 import org.apache.continuum.release.distributed.DistributedReleaseUtil;
 import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
 import org.apache.continuum.web.action.AbstractReleaseAction;
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.Project;
 import org.apache.maven.continuum.model.system.Profile;
@@ -264,6 +265,9 @@
             releaseManager.perform( releaseId, performDirectory, goals, arguments, useReleaseProfile,
listener,
                                     repository );
         }
+        
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, project.getGroupId()
+ ":" +
+                           project.getArtifactId() + ":" + project.getVersion(), AuditLogConstants.PERFORM_RELEASE
);
 
         return SUCCESS;
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleasePrepareAction.java
Wed Apr  8 23:57:04 2009
@@ -23,6 +23,7 @@
 import org.apache.continuum.release.distributed.DistributedReleaseUtil;
 import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
 import org.apache.continuum.web.action.AbstractReleaseAction;
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.installation.InstallationService;
 import org.apache.maven.continuum.model.project.Project;
@@ -342,6 +343,9 @@
                 releaseManager.prepare( project, getReleaseProperties(), getRelVersionMap(),
getDevVersionMap(), listener,
                                         workingDirectory, environments, executable );
         }
+        
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, project.getGroupId()
+ ":" + project.getArtifactId() + ":" +
+                           project.getVersion(), AuditLogConstants.PREPARE_RELEASE );
 
         return SUCCESS;
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseRollbackAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseRollbackAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseRollbackAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ReleaseRollbackAction.java
Wed Apr  8 23:57:04 2009
@@ -24,6 +24,7 @@
 
 import org.apache.continuum.configuration.BuildAgentConfigurationException;
 import org.apache.continuum.release.distributed.manager.DistributedReleaseManager;
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.utils.WorkingDirectoryService;
 import org.apache.maven.continuum.model.project.Project;
@@ -105,6 +106,9 @@
                     //do nothing
                 }
             }
+            
+            triggerAuditEvent( getPrincipal(), AuditLogConstants.PROJECT, project.getGroupId()
+ ":" +
+                               project.getArtifactId() + ":" + project.getVersion(), AuditLogConstants.ROLLBACK_RELEASE
);
     
             releaseManager.getPreparedReleases().remove( releaseId );
         }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/ScheduleAction.java
Wed Apr  8 23:57:04 2009
@@ -26,6 +26,7 @@
 import java.util.List;
 
 import org.apache.commons.lang.StringUtils;
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.model.project.BuildQueue;
 import org.apache.maven.continuum.model.project.Schedule;
@@ -243,6 +244,7 @@
             try
             {
                 getContinuum().addSchedule( setFields( new Schedule() ) );
+                triggerAuditEvent( getPrincipal(), AuditLogConstants.SCHEDULE, getName()
+ ":" + getCronExpression(), AuditLogConstants.ADD_SCHEDULE );
             }
             catch ( ContinuumException e )
             {
@@ -256,6 +258,7 @@
             try
             {
                 getContinuum().updateSchedule( setFields( getContinuum().getSchedule( id
) ) );
+                triggerAuditEvent( getPrincipal(), AuditLogConstants.SCHEDULE, getName()
+ ":" + getCronExpression(), AuditLogConstants.MODIFY_SCHEDULE );
             }
             catch ( ContinuumException e )
             {
@@ -328,6 +331,8 @@
             addActionError( e.getMessage() );
             return REQUIRES_AUTHENTICATION;
         }
+        
+        String resource = getContinuum().getSchedule( id ).getName() + ":" + getCronExpression();
 
         if ( confirmed )
         {
@@ -349,6 +354,8 @@
 
             return CONFIRM;
         }
+        
+        triggerAuditEvent( getPrincipal(), AuditLogConstants.SCHEDULE, resource, AuditLogConstants.REMOVE_SCHEDULE
);
 
         return SUCCESS;
     }

Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
(original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/admin/BuildDefinitionTemplateAction.java
Wed Apr  8 23:57:04 2009
@@ -26,6 +26,7 @@
 import java.util.LinkedList;
 import java.util.List;
 
+import org.apache.continuum.web.util.AuditLogConstants;
 import org.apache.maven.continuum.ContinuumException;
 import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
 import org.apache.maven.continuum.execution.ContinuumBuildExecutorConstants;
@@ -139,12 +140,14 @@
         {
             buildDefinitionTemplate.setBuildDefinitions( selectedBuildDefinitions );
             this.getContinuum().getBuildDefinitionService().updateBuildDefinitionTemplate(
buildDefinitionTemplate );
+            triggerAuditEvent( getPrincipal(), AuditLogConstants.TEMPLATE, buildDefinitionTemplate.getName(),
AuditLogConstants.MODIFY_TEMPLATE );
         }
         else
         {
             buildDefinitionTemplate.setBuildDefinitions( selectedBuildDefinitions );
             this.buildDefinitionTemplate = this.getContinuum().getBuildDefinitionService()
                 .addBuildDefinitionTemplate( buildDefinitionTemplate );
+            triggerAuditEvent( getPrincipal(), AuditLogConstants.TEMPLATE, buildDefinitionTemplate.getName(),
AuditLogConstants.ADD_TEMPLATE );
         }
 
         return SUCCESS;
@@ -158,6 +161,7 @@
             buildDefinitionTemplate =
                 getContinuum().getBuildDefinitionService().getBuildDefinitionTemplate(
                                                                                        this.buildDefinitionTemplate.getId()
);
+            triggerAuditEvent( getPrincipal(), AuditLogConstants.TEMPLATE, buildDefinitionTemplate.getName(),
AuditLogConstants.REMOVE_TEMPLATE );
             this.getContinuum().getBuildDefinitionService().removeBuildDefinitionTemplate(
buildDefinitionTemplate );
         }
         else

Modified: continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/application.xml Wed
Apr  8 23:57:04 2009
@@ -157,7 +157,7 @@
           <allowedScheme>http</allowedScheme>
           <allowedScheme>https</allowedScheme>
           <allowedScheme>ftp</allowedScheme>
-          <!-- <allowedScheme>file</allowedScheme> -->
+          <allowedScheme>file</allowedScheme>
         </allowedSchemes>
       </configuration>
     </component>

Modified: continuum/trunk/continuum-webapp/src/main/resources/log4j.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/log4j.xml?rev=763464&r1=763463&r2=763464&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/log4j.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/log4j.xml Wed Apr  8 23:57:04 2009
@@ -29,6 +29,15 @@
       <param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n"/>
     </layout>
   </appender>
+  
+  <appender name="continuumAuditlog" class="org.apache.log4j.DailyRollingFileAppender">
+    <param name="file" value="${appserver.base}/logs/continuum-audit.log" />
+    <param name="append" value="true" />
+    <param name="datePattern" value="'.'yyyy-MM-dd" />
+    <layout class="org.apache.log4j.PatternLayout">
+      <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %m%n"/>
+    </layout>
+  </appender>
 
   <appender name="redbackAuditLog" class="org.apache.log4j.DailyRollingFileAppender">
     <param name="file" value="${appserver.base}/logs/continuum-security-audit.log" />
@@ -38,6 +47,11 @@
       <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} - %X{redback.currentUser}
- %m%n"/>
     </layout>
   </appender>
+  
+  <logger name="AuditLog">
+    <level value="info" />
+    <appender-ref ref="continuumAuditlog" />
+  </logger>
 
   <logger name="org.codehaus.plexus.redback.struts2.action.AuditEvent" additivity="false">
     <level value="info" />



Mime
View raw message