Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • PortalEvent- abstract base class for all portal events. [serverId, eventSessionId, userName, timestamp]
    • LayoutPortalEvent- abstract base class for all layout related portal events. [layoutId, layoutOwner]
      • FolderAddedToLayoutPortalEvent - fired when a new folder (tab, column) is added to the user's layout. [newFolderId]
      • FolderDeletedFromLayoutPortalEvent - fired when a folder is deleted from the user's layout. [oldParentFolderId, deletedFolderId, deletedFolderName]
      • FolderMovedInLayoutPortalEvent - fired when a folder is moved within the user's layout. [oldParentFolderId, movedFolderId]
      • PortletAddedToLayoutPortalEvent - fired when a portlet is added to the user's layout. [parentFolderId, fname]
      • PortletDeletedFromLayoutPortalEvent - fired when a portlet is deleted from the user's layout. [oldParentFolderId, fname]
      • PortletMovedInLayoutPortalEvent - fired when a portlet is moved within the user's layout. [oldParentFolderId, newParentFolderId, fname]
    • LoginEvent - fired when a user logs in to the portal. [groups, attributes]
    • LogoutEvent - fired when a user explicitly logs out of the portal.
    • PortalRenderEvent - fired when after a portal page renders (generally equal to rendering a tab). [requestPath, urlState, urlType, parameters, targetLayoutNodeId]
    • PortletExecutionEvent- abstract base class for all portlet execution events. [fname, executionTimeNano, parameters]
      • PortletActionExecutionEvent - fired after a portlet action completes

 

Event ClassSummaryData Summary1
FolderAddedToLayoutPortalEventFired when a user adds a folder to their layoutLayout ID, new folder node ID
FolderDeletedFromLayoutPortalEventFired when a user deletes a folder from their layout

Layout ID, old parent node ID, deleted folder node ID, deleted folder name

FolderMovedInLayoutPortalEventFired when a user moves a folder in their layoutLayout ID, old parent node ID, moved folder node ID
PortletAddedToLayoutPortalEventFired when a user adds a portlet to their layoutLayout ID, parent node ID, portlet fname
PortletDeletedFromLayoutPortalEventFired when a user deletes a portlet from their layoutLayout ID, old parent node ID, portlet fname
PortletMovedInLayoutPortalEventFired when a user moves a portlet in their layoutLayout ID, old parent node ID, new parent node ID, portlet fname
LoginEventFired when a user authenticates with the portalGroup keys the user is a member of, user attributes
LogoutEventFired when a user explicitly logs out of the portal 
PortalRenderEventFired when a user renders a pageRequest path info, url state2, url type3, request parameters, targeted layout node ID, execution time (ms)
PortletActionExecutionEventFired when a portlet action request is executedPortlet fname, execution time, request parameters
PortletEventExecutionEventFired when a portlet event request is executedPortlet fname, execution time, request parameters, event QName
PortletRenderExecutionEventFired when a portlet render request is executedPortlet fname, execution time, request parameters, targeted flag, rendered from cache flag
PortletRenderHeaderExecutionEventFired when a portlet render header request is executedPortlet fname, execution time, request parameters, targeted flag
PortletResourceExecutionEventFired when a portlet resource request is executedPortlet fname, execution time, request parameters, resource ID, rendered from cache flag
  1. All events track time, server name, username, and event session in addition to the data listed in the summary column
  2. See the org.jasig.portal.url.UrlState enum (NORMAL, MAX, DETACHED, EXCLUSIVE)
  3. See the org.jasig.portal.url.UrlType enum (RENDER, ACTION, RESOURCE)

Example using Portal Events

...

  • Open for editing uportal-war/src/main/resources/properties/contexts/applicationContext.xml
  • Add the loggingEventHandler bean (see below)
Code Block
languagehtml/xml
<bean id="loggingEventHandler" class="org.jasig.portal.spring.context.LoggingEventHandler">
        <property name="logCategory" value="STATS_CAT"/>
        <property name="applicationEventFilters">
            <list>
              <bean class="org.jasig.portal.spring.context.ClassFilteringApplicationListener">
                    <property name="supportedEvents">
                        <list>
                            <value>org.jasig.portal.events.FolderAddedToLayoutPortalEvent</value>
                            <value>org.jasig.portal.events.FolderDeletedFromLayoutPortalEvent</value>
			    <value>org.jasig.portal.events.FolderMovedInLayoutPortalEvent</value>
                            <!-- All layout node related events -->
			    <value>org.jasig.portal.events.LayoutPortalEvent</value>
			    <!-- Explicitly list login/logout events -->
                            <value>org.jasig.portal.events.LoginEvent</value>
                            <value>org.jasig.portal.events.LogoutEvent</value>
			    <value>org.springframework.security.authentication.event.AuthenticationSuccessEvent</value>
                        </list>
                    </property>
                </bean>
            </list>
        </property>
 </bean>

 

  • You can view the results of the events above by adding the following to the uportal-war/src/main/webapp/WEB-INF/log4j.properties file. (see below)
Code Block
languagehtml/xml
...
 
log4j.category.STATS_CAT=INFO,STATS
log4j.additivity.STATS_CAT=false

log4j.appender.STATS=org.apache.log4j.RollingFileAppender
log4j.appender.STATS.File=${environment.build.logging.dir}/stats/stats.log
log4j.appender.STATS.Append=true
log4j.appender.STATS.MaxFileSize=20MB
log4j.appender.STATS.MaxBackupIndex=45
log4j.appender.STATS.layout=org.apache.log4j.PatternLayout
log4j.appender.STATS.layout.ConversionPattern=%d [%t] %p %c - %m %n

 
...

...

      • .
      • PortletEventExecutionEvent - fired after a portlet event completes. [eventName]
      • PortletRenderExecutionEvent - fired after a portlet render completes. [targeted, usedPortalCache]
      • PortletRenderHeaderExecutionEvent - fired after a portlet render-header completes. [targeted, usedPortalCache]
      • PortletResourceExecutionEvent - fired after a portlet resource completes. [resourceId, usedBrowserCache, usedPortalCache]