Configurando Criação de Log de Backend no Arquivo web.xml no Web UI Framework

O Web UI Framework permite ativar a criação de log para usos de estrutura de backend (Struts, mashups e API), com base no URI para cada cliente. Após especificar a criação de log, será possível ativá-la usando o botão Iniciar Log de Solicitação na barra de ferramentas de depuração no aplicativo.

Sobre esta tarefa

Para cada solicitação de criação de log, a criação de log de backend do WUF será realizada para o seguinte:
  • Quando uma ação de Struts for chamada, o nome da ação de Struts é conectada.
  • Quando um mashup for chamado, o nome de classe XAPIMashup e o nome/nome de fluxo do API são conectados.
  • Quando um redirecionamento ocorre ou quando requestDispatcher é criado.

Procedimento

  1. Utilize parâmetro de contexto scui-request-log-enabled do arquivo web.xml para configurar a criação de log de backend. Por padrão, esse parâmetro é configurado para true. Se ele não estiver configurado para true, o botão Iniciar Log de Solicitação não aparecer.

    Entrada do web.xmlde amostra:

    <context-param>
    		<param-name>scui-request-log-enabled</param-name>
     	<param-value>true</param-value> 
    </context-param>
  2. Use a classe com.sterlingcommerce.ui.web.framework.utils.SCUIUtils para fornecer métodos estáticos para verificar se a criação de log está ativada.
    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. Utilize a classe com.sterlingcommerce.ui.web.framework.context.SCUIContext para realmente registrar em log a mensagem. O método do utilitário nessa classe pode ser usado pelo aplicativo para registrar suas mensagens baseadas em solicitação. Ela será registrada apenas se o parâmetro de contexto scui-request-log-enabled for true e se o usuário tiver iniciado a solicitação pela barra de ferramentas de depuração.
    Nota: Uma exceção de tempo de execução será lançada se o método for chamado quando a criação de log não for ativada por, por exemplo outro método interno.
    ... 
    public void setRequestLogMessage(String message){
    	...
    	// check if log enabled and attribute already exists.
    	this.setAttribute(SCUIConstants.REQUEST_LOG_MSG_PARAM_NAME, message); 
    } 
    ...
  4. Um anexador separado é usado para colocar toda a criação de log com base em solicitação em um arquivo separado. O arquivo requestinfo.log está disponível em < INSTALL_DIR>/logs ou em seu local de log padrão

    O log precisa ser ativado por uma das ações a seguir:

    • O comando -Dyfs.logall=Y
    • Ativar a criação de log pelo System Management Console.

    Se o log não for ativado, nenhuma criação de log ocorrerá.

    Mensagem de log de amostra:

    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. O botão Parar log de solicitação aparece na barra de ferramentas de depuração quando o botão Iniciar log de solicitação é ativado. Clicar no botão Parar Log de Solicitação parará a criação de log no arquivo requestinfo.log após uma ação final de Struts ser chamada.