morciuch    2002/08/27 08:37:13

  Added:       proposals PortletUsageLogging.txt
  Log:
  Initial check in (see Bugzilla issue 11737)
  
  Revision  Changes    Path
  1.1                  jakarta-jetspeed/proposals/PortletUsageLogging.txt
  
  Index: PortletUsageLogging.txt
  ===================================================================
  Jetspeed Proposal: Portlet Usage Logging (draft)
  Version: $Revision: 1.1 $
  Proposed by: Mark Orciuch, Next Generation Solutions, Ltd. ([EMAIL PROTECTED])
  Status: Initial Proposal
  Date: August 16, 2002
  
  Overview
  ========
  
  The purpose of this proposal is to introduce ability to log every portlet usage. 
Commercial sites make use of such tools as WebTrends to gauge the traffic and analyze 
content usage. Due to the dynamic nature of Jetspeed portal, it is not possible to 
analyze content usage by using a standard web server log. In order to gain meaningful 
portlet usage statistics, each portlet access should be logged. If the log format 
conforms to something that can be fed into, say, WebTrends, then getting usage stats 
would be much easier.
  
  Approach
  ========
  
  My proposed approach is to create a Turbine service responsible for managing the 
portlet usage statistcs. The call to this service's logAccess() method would be the 
"implanted" in appropriate places where portle content is requested.  The most logical 
choice for the the logging engine is log4j. The following are main features of the 
feference implementation:
  
  1. Log entry to utilize the Common Log Format for ease of integration with WebTrends 
(or similar tool).
  2. Lightweight implementation of the logAccess method so it won't affect performance.
  3. Current stats cache (optional).
  4. Methods to return current stats from the cache - by portlet and by user 
(optional).
  5. Administrative portlet to display current stats (optional).
  
  Implementation
  ==============
  
  1. The following new classes/templates would be added:
  
  org.apache.jetspeed.services.portletstats.PortletStatsService - interface to 
implement by portlet stats service
  
  org.apache.jetspeed.services.portletstats.JetspeedPortletStatsService - reference 
implementation
  
  org.apache.jetspeed.services.portletstats.TestPortletStatsService - unit test class
  
  org.apache.jetspeed.services.JetspeedPortletStats - static wrapper for the portlet 
stats service
  
  org.apache.jetspeed.modules.actions.portlets.PortletStatsAction - action for the 
portlet-stats-porlet template
  
  portlet-stats-portlet.vm - template to display portlet statics as in the mock up 
below:
  
  +---------------------+-----------------+------------+
  +Portlet/User       + admin + turbine + Total hits +
  +---------------------+-----------------+------------+
  +DatabaseBrowserTest  +     1 +      20 +         21 +
  +---------------------+-----------------+------------+
  +Jetspeed             +     1 +      30 +         31 +
  +---------------------+-----------------+------------+
  +DatabaseBrowserTest  +     1 +      40 +         41 +
  +---------------------+-----------------+------------+
  +Total hits           +     3 +      90 +         93 +
  +---------------------+-----------------+------------+
  
  2. The following classes/templates would be changed:
  
  org.apache.jetspeed.portal.security.portlets.PortletWrapper - insert a call to 
JetspeedPortletStats.logAccess() in getContent() method 
  
  3. The following entries would be added to the JetspeedResources.properties:
  
  #########################################
  # Portlet Usage Service                 #
  #########################################
  services.PortletStats.classname = 
org.apache.jetspeed.services.portletstats.JetspeedPortletStatsService
  
  # Name of the log4j logger defined in tr.props
  services.PortletStats.logger = access
  
  # If true, logging will occur
  services.PortletStats.enabled = true
  
  # Portlets to exclude from logging
  services.PortletStats.excludePortlets=
  
  # Date format to use in the log entry
  services.PortletStats.dateFormat = dd/MMM/yyyy:hh:mm:ss z
  
  4. The following entires would be added to the TurbineResources.properties:
  
  services.LoggingService.access.log4j.category.access = INFO, access
  services.LoggingService.access.log4j.appender.access = org.apache.log4j.FileAppender
  services.LoggingService.access.log4j.appender.access.layout = 
org.apache.log4j.PatternLayout
  services.LoggingService.access.log4j.appender.access.layout.ConversionPattern = %m%n
  services.LoggingService.access.log4j.appender.access.append = true
  
services.LoggingService.access.log4j.appender.access.file=${webappRoot}/WEB-INF/log/access.log
  services.LoggingService.access.className = 
org.apache.turbine.services.logging.Log4JavaLogger
  services.LoggingService.access.level = INFO
  
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to