Message and trace logging


Portlets can write message and trace information to log files, which are maintained in the wp_root/log/ directory. The log files help the portal administrator investigate portlet errors and special conditions and help the portlet developer test and debug portlets.

The PortletContext object in JSR 168 includes a log() method. The Hello User example shows how to log a message when exceptions are caught.


  public void processAction(ActionRequest request, ActionResponse response)
              throws PortletException, IOException{

  PortletContext context = getPortletContext();

  try{
      String save = request.getParameter("save");
      if (save != null){
         PortletPreferences prefs = request.getPreferences();
         prefs.setValue("userName",request.getParameter("username"));
         prefs.store();
      }
    }
    catch ( IOException ioe ){
          context.log("An IO error occurred when trying to save the name.");    
    }
    catch ( PortletException pe ) {
          context.log("A portlet exception was thrown when trying to save the name.");    
    }

  }

The IBM Portlet API provides the PortletLog class, which has methods to write specific types of message and trace information to the logs.

  • debug() - for trace information
  • info() - for informational messages.
  • error() - for error messages.
  • warn() - for warning messages.

If an IBM portlet needs to access the portlet log multiple times in a method, it is good idea to assign the log reference to a variable, for example:


  private PortletLog myLogRef = getPortletLog();

Since logging operations are expensive, the PortletLog class of the IBM Portlet API provides methods to determine if logging is enabled for a given level. The portlet should write to the log of a given level only if the log is tracking messages of that level. For example:

  if( getPortletLog().isDebugEnabled() )
  {
    myLogRef.debug("Warning, Portlet Resources are low!");
  }

See System event logging for a description of the log files.

 

See also

Home |

 

WebSphere is a trademark of the IBM Corporation in the United States, other countries, or both.

 

IBM is a trademark of the IBM Corporation in the United States, other countries, or both.