Geração de log utilizando Log4j e validação JavaScript

3 respostas
renatodsvieira

Preciso gerar log utilizando a Api Log4j em minha página JSP no momento que faço a validação de campos de meu form, utilizando a validação abaixo:

// verifica dias - numeros if (isNaN(document.getElementById("txtValor").value)){ alert ("O tipo de dado do parâmetro é diferente do Identificado pelo sistema (Número)."); document.getElementById("txtValor").focus(); return false; }

Se o tipo de dado de entrada for diferente, preciso gerar log

Alguem sabe como implementar isto ?

3 Respostas

gustavotouzo

cara, você poderia utilizar o DWR(ajax) para chamar um método java que pudesse gerar este log.

R

Ola Renato,

Bom, eu nunca cheguei a trabalhar com a Api Log4j, mas vc poderia tentar o seguinte, assim q vc realizar validação no seu form, no corpo do seu JSP já chamaria seu script, seria a primeira coisa a ser executado. Assim:

Eu procuro usar Ajax quando não tem mais jeito!!!

Flw Abraço

renatodsvieira

Obrigado pela atenção pessoal

Consegui fazer a gravação do log, inserindo um método que realiza a chamada de uma action que por sua vez implementa o processo de gravação, passando como parametros o forward para chamar novamente a pagina atual e a mensagem provenientes de campos INPUT HIDDEN

JavaScript que realiza validação - Encontrou a condição, chama o método gravaLogJsp passando uma mensagem:
// verifica dias - numeros
			if (isNaN(document.getElementById("txtValor").value)){
				
				var mensagem = "O tipo de dado do parâmetro é diferente do Identificado pelo sistema (Número).";
				alert(mensagem);
				document.getElementById("txtValor").focus();
				
				// grava log utilizando Log4j
				gravaLogJsp(mensagem);

				return false;
			}
Método gravaLogJsp que recebe parametros de campo INPUT HIDDEN e passa a mensagem e o forward da action que ele vai executar:
// Chama action Log
	function gravaLogJsp(mensagem){
		
		// mensagem log
		document.getElementById("mensagemLog").value = mensagem;

		// página retorno - action
		document.getElementById("paginaRetorno").value = "parametrizarAplicacao";

		document.forms[0].action="gravaLogJsp.do";
		document.forms[0].submit();
 	}
Campos HIDDEN no HTML:
<!-- Armazena dados do log jsp -->
<INPUT type="hidden" name="mensagemLog" id="mensagemLog">
<INPUT type="hidden" name="paginaRetorno" id="paginaRetorno">
No método execute do Action:
String mensagemLog = request.getParameter("mensagemLog");
        String paginaRetorno = request.getParameter("paginaRetorno");

        try {
            
            // grava log em arquivo
            logger.info(mensagemLog);

        }

...

forward = mapping.findForward(paginaRetorno);
            
        }

        // Finish with
        return forward;

Bom, o unico problema é que ele chama novamente a pagina de origem via action e não e perde os outros dados de outros formulário

Isto implementado em AJAX seria melhor, pois eu não teria que esperar nova requisição para continuar a edição da página :)

Criado 25 de junho de 2008
Ultima resposta 26 de jun. de 2008
Respostas 3
Participantes 3