Back-End-Protokollierung in der Datei web.xml im Webbenutzerschnittstellen-Framework einrichten

Das Webbenutzerschnittstellen-Framework gibt Ihnen die Möglichkeit, auf Basis der URI der einzelnen Clients die Nutzung des Back-End-Frameworks (Struts, Mashups und API) zu protokollieren. Nach Festlegung der Protokollierung können Sie diese über die Schaltfläche Start Request Log in der Debugging-Symbolleiste der Anwendung aktivieren.

Informationen zu diesem Vorgang

Bei jeder Protokollierungsanforderung zeichnet die Back-End-Protokollierung im Webbenutzerschnittstellen-Framework Folgendes auf:
  • Beim Aufruf einer Struts-Aktion wird der Name der Aktion protokolliert.
  • Beim Aufruf eines Mashups werden der XAPIMashup-Klassenname und der Name der API/des Verarbeitungsablaufs protokolliert.
  • Bei einer Weiterleitung oder der Erstellung von requestDispatcher.

Vorgehensweise

  1. Verwenden Sie den Kontextparameter "scui-request-log-enabled" der Datei web.xml, um die Back-End-Protokollierung festzulegen. Standardmäßig ist dieser Parameter auf true festgelegt. Ist er nicht auf true festgelegt, wird die Schaltfläche Start Request Log nicht angezeigt.

    Beispiel für einen Eintrag in der Datei web.xml:

    <context-param>
    		<param-name>scui-request-log-enabled</param-name>
     	<param-value>true</param-value> 
    </context-param>
  2. Stellen Sie mithilfe der com.sterlingcommerce.ui.web.framework.utils.SCUIUtils-Klasse statische Methoden bereit, mit denen überprüft werden kann, ob die Protokollierung aktiviert ist.
    public static boolean isRequestLogEnabledInCtx(SCUIContext uiContext){
            return isRequestLogEnabledInCtx(uiContext.getWebContext().getRequest());
    }
    public static boolean isRequestLogEnabledInCtx(HttpServletRequest request){
            // read from context param if enabled 
            // read from the boolean from isRequestLogEnabled
            return isRequestLogEnabledInCtx;                
    }
    ... 
    public static boolean isRequestLogEnabled(SCUIContext uiContext){
            return isRequestLogEnabled(uiContext.getWebContext().getRequest()); 
    } 
    ... 
    public
    static boolean isRequestLogEnabled(HttpServletRequest request){
            // read from context param if enabled 
            // read from the boolean from isRequestLogEnabled 
            return isRequestLogEnabled;             
    }
  3. Verwenden Sie die com.sterlingcommerce.ui.web.framework.context.SCUIContext-Klasse für die eigentliche Protokollierung der Nachricht. Die utility-Methode in dieser Klasse kann von der Anwendung zum Protokollieren anforderungsbezogener Nachrichten verwendet werden. Die Protokollierung erfolgt nur, wenn der Kontextparameter "scui-request-log-enabled" auf true festgelegt ist und der Benutzer die Anforderungsprotokollierung über die Debugging-Symbolleiste gestartet hat.
    Hinweis: Eine Laufzeitausnahmebedingung wird ausgelöst, wenn die Methode aufgerufen wird, wenn die Protokollierung nicht von einer anderen internen Methode aktiviert wird.
    ... 
    public void setRequestLogMessage(String message){
    	...
    	// check if log enabled and attribute already exists.
    	this.setAttribute(SCUIConstants.REQUEST_LOG_MSG_PARAM_NAME, message); 
    } 
    ...
  4. Über einen separaten Appender erfolgt die gesamte anforderungsbezogene Protokollierung in einer separaten Datei. Die Datei requestinfo.log befindet sich im Verzeichnis < Installationsverzeichnis>/logs oder in Ihrer Standardprotokollposition.

    Die Protokollierung muss über eine der folgenden Aktionen aktiviert werden:

    • Befehl -Dyfs.logall=Y
    • Aktivierung über die Systemmanagementkonsole.

    Ist die Protokollierung nicht aktiviert, wird kein Protokoll aufgezeichnet.

    Protokollnachricht als Beispiel:

    2010-02-18 06:38:47,257:DEBUG  :[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)':  
    Inside SCUIAction flightTrip
    Getting Request dispatcher /stk/flightTrip/flightTrip.jsp [system]: requestlogger            
    2010-02-18 06:39:08,806:DEBUG  :[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)': 
    Inside SCUIAction getFlightTrip
    Inside SCUIXAPIMashup com.sterlingcommerce.ui.web.platform.mashup.SCUIXAPIMashup 
    Api name is getFlightTripList
    Getting Request dispatcher /stk/flightTrip/gft.jsp [stkadmin]: requestlogger            
    2010-02-18 06:39:09,013:DEBUG  :[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)': 
    Inside SCUIAction getOrganizationList
    Inside SCUIXAPIMashup com.sterlingcommerce.ui.web.platform.mashup.SCUIXAPIMashup
    Api name is getOrganizationList 
    Getting Request dispatcher /stk/flightTrip/gol.jsp [stkadmin]: requestlogger            
    2010-02-18 06:39:11,833:DEBUG  :[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)': 
    Inside SCUIAction airport 
    Getting Request dispatcher /stk/airport/airportScreen.jsp [stkadmin]: requestlogger            
    2010-02-18 06:39:15,836:DEBUG  :[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)':
    Inside SCUIAction getAirportList 
    Inside SCUIXAPIMashup com.sterlingcommerce.ui.web.platform.mashup.SCUIXAPIMashup
    Api name is getAirportList
    Getting Request dispatcher /stk/airport/airportList.jsp [stkadmin]: requestlogger            
    2010-02-18 06:39:52,948:DEBUG  :[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)':
    Inside SCUIAction activateRequestLog                        [stkadmin]: requestlogger            
  5. Die Schaltfläche Anforderungsprotokoll stoppen wird in der Debugging-Symbolleiste angezeigt, wenn die Schaltfläche Anforderungsprotokoll starten aktiviert ist. Wenn Sie auf die Schaltfläche Stop Request Log klicken, wird nach dem Aufruf der letzten Struts-Aktion die Protokollierung in der Datei requestinfo.log gestoppt.