Captura del log log4j en programa con WriterAppender

Java
En unos de mis aplicaciones necesitaba capturar log de salida log4j, es decir enviar salida de stack log4j a un String. Se realiza con un WriterAppender.

DebugClass.java

import org.apache.log4j.Logger;

public class DebugClass {
       
        static Logger logger = Logger.getLogger(DebugClass.class);
       
        public DebugClass(){
               
                logger.debug("Es un log de prueba");
               
        }

}
 


LoggerString.java

import java.io.ByteArrayOutputStream;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.SimpleLayout;
import org.apache.log4j.WriterAppender;

public class LoggerString {

        private static Logger logger = Logger.getLogger(DebugClass.class);
        private ByteArrayOutputStream out = new ByteArrayOutputStream();

        public static void main(String[] args) {
                LoggerString test = new LoggerString();
                System.out.println("Log de salida:" + test.getMessage());
        }

        public LoggerString() {

                logger.setLevel(Level.DEBUG);
                WriterAppender writeappender = new WriterAppender(new SimpleLayout(),
                                out);
                logger.addAppender(writeappender);

                new DebugClass();

        }

        public String getMessage() {
                String message = out.toString();
                try {
                        out.close();
                } catch (Exception er) {
                }
                return message;
        }
}

 

Pagina de la Presidencia

Seguridad informática
Poco a poco las empresas públicas cumplan con orden del señor presidente Rafael Correa – utilizar software libre (Open Source) y no dar lujo a gastar plata sabemos en que).

A la pagina de la presidencia, también toco misma historia, migrar del asp a un portal echo en PHP. Pues en estadísticas de Netcraft se ve, que no fue tan fácil, remplazar Windows 2003 por un Linux (3-Nov-2008 a 4-Nov-2008 fue una noche larga para técnicos de Andinatel =)).

Bueno porque le publico este tópico en blog «Seguridad informática» )? pueden adivinar ustedes mismos, su respetivo comentario ya fue enviado a soporte de este sitio.

Manejo de threads con ExecutorService y Semaphore

Java
Anteriormente manejo de threads, era un poco complicado por control de número de hilos, threads colgados (bloqueados), recursos. Con salida de Java 5 se mejoro este asunto gracias a ExecutorService y Semaphore. En siguiente ejemplo, estamos levantando 20 hilos, con pool de 10 hilos concurrentes.


Leer más