Y por qué no solo encapsulas el logger para que primero reemplace:
Código Java:
Ver originalpublic class Logger {
private Logger logger;
public Logger(Class c) {
logger = Logger.getLogger(c.getName())
}
public Logger filter
(String mesage,
char[] digitsToReplace
) { for(char c : digitsToReplace) {
regex += c;
}
regex += "]";
this.message = message.replaceAll(message, chars);
return this;
}
public void log() {
logger.log(message);
}
}
JSP:
Código XML:
Ver original<form action="MessageServlet" method="post">
<input type="text" name="message" placeholder="Envíe su mensaje" />
<input type="submit" value="Enviar" />
</form>
Servlet:
Código Java:
Ver originalLogger logger = new Logger(EsteServlet.class);
// message = "E$ste es #un mens&aje de pr%ueba";
String message
= request.
getParameter("message"); logger
.filter(mesage, new char[] {'$', '#', '&', '%'})
.log(); // Imprime 'Este es un mensaje de prueba'
O puedes hacerlo de frente, yo creé el método filter para modularizar, pero puedes hacer el reemplazo en el mismo método que hace el log.
PD: En el ejemplo uso el logger por defecto xD. Adaptalo a log4j.