miércoles, 22 de julio de 2009

Logs tipo Apache NCSA en framework Restlet... y con DailyRollingFileAppender

El servidor web (ej: jetty) del framework Restlet arroja logs de los requests en formato Apache (NCSA) al logging estándar del JDK.

Para capturar esos logs, colocar en el main de la aplicación:


java.util.logging.Handler fh = new NCSAFileHandler();
java.util.logging.Logger.getLogger("").addHandler(fh);


La clase NCSAFileHandler es sencilla, sólo sobreescribe 1 método de su padre Handler:



public class NCSAFileHandler extends Handler {
...
private static Logger log = Logger.getLogger(NCSAFileHandler.class);;
@Override
public void publish(LogRecord logRecord) {
log.info(logRecord.getMessage());
}
}


Al método publish de NCSAFileHandler le llegarán todos los records (record = mensaje con el resumen del roundtrip de un request) de Restlet. Con publish botamos los records a log4j.

Para que el log de NCSAFileHandler quede en un DailyRollingFileAppender de log4j, en el main de la aplicación:


File ncsaLogFile = new File("/tmp/http_ncsa.log");
DailyRollingFileAppender ncsaAppender = new DailyRollingFileAppender();
ncsaAppender.setFile(ncsaLogFile.getAbsolutePath());
ncsaAppender.setName("DailyRollingFileAppenderNCSA");
ncsaAppender.setDatePattern("'.'yyyy-MM-dd");
ncsaAppender.activateOptions();
PatternLayout ncsaLayout = new PatternLayout("[%t] %m%n");
ncsaAppender.setLayout(ncsaLayout);
Logger ncsaLogger = Logger.getLogger(mipackage.ncsa.NCSAFileHandler.class);
ncsaLogger.addAppender(ncsaAppender);

sábado, 4 de julio de 2009

No me hagas pensar - ¿Cómo usamos realmente la web?

No leemos las páginas, las hojeamos
  • Tenemos prisa
  • Sabemos que no hay que leerlo todo
  • Somos buenos para hojear (ej: periódicos)

Satisficing: No tomamos decisiones óptimas, es suficiente
  • Tenemos prisa
  • Errar -> Atrás
  • Adivinar es más divertido
No leemos el manual, nos las arreglamos
  • No nos importa
  • Si funciona, seguimos con ello
  • Ej: docenas de personas escriben las url en la búsqueda de yahoo. "Yahoo es la Internet"...
Ref: No me hagas pensar - Una aproximación a la usabilidad en la Web, Segunda edición. Steve Krug.

viernes, 3 de julio de 2009

No me hagas pensar - Clics evidentes

¿Dónde harías clic para ver detalles de la oferta de compras de 3 a 12 cuotas que aparece en el banner?



Al colocar el ratón, sólo se podía hacer clic en la zona en verde oscuro...

Otro caso de facebook:



Al colocar el ratón encima de "Name", cambia el puntero, ¿A dónde me lleva?, no aparece nada abajo en el status bar del browser, al presionarlo me di cuenta de que lleva al mismo lado que al hacer clic en "change".

Ref: No me hagas pensar - Una aproximación a la usabilidad en la Web, Segunda edición. Steve Krug.