jueves, 25 de diciembre de 2014

¿Qué es Log4j?


¿Qué es Log4J? Es un framework/librería Open Source, desarrollada por Apache Software Foundation para Java. permite llevar un "log" de la aplicación en tiempo de ejecución. Muy robusto pudiendo mediante un archivo properties definir nivel del mensaje (importancia), tipo de salida ( consola, archivo log, tabla base de datos), ruta del archivo de salida, tamaño máximo en mb, etc.
La salida está dividida en niveles, según el tipo de error:
- DEBUG, INFO, WARN, ERROR y FATAL.


Entorno de Trabajo:
SO: Windows 7 Ultimate 64 bits.
IDE: Luna Service Release 1.
JDK: Java Versión 1.7.0_51
Nombre/Versión Librería: log4j-1.2.17
Descarga Log4j: http://logging.apache.org/log4j/1.2/download.html

Antes de comenzar, debes:
1.- Crear un Proyeto Java.
2.- Descomprimir la librería Log4j descargada. (La librería tiene el siguiente nombre log4j-1.2.17.jar).
3.- Agregar la librería a tu proyecto (Add to Build Path), para poder utilizar los métodos de la misma.


Comenzaremos con un simple Programa de Log!...

Esctructura:
 

Explicación:

Clase: Prueba_log4J.java

package traineejava.blogspot.com;
// importamos las clases necesarias.
//configuración básica para mostrar log por la consola.
import org.apache.log4j.BasicConfigurator;   
import org.apache.log4j.Logger;

public class Prueba_log4J {

    static final Logger logger = Logger.getLogger(Prueba_log4J.class);
       
    public static void main(String[] args) {
        BasicConfigurator.configure();
        logger.debug("Log de tipo DEBUG, traineejava.blogspot.com");
        logger.info( "Log de tipo INFO,  traineejava.blogspot.com");
        logger.warn(" Log de tipo WARN,     traineejava.blogspot.com");
        logger.error("Log de tipo ERROR, traineejava.blogspot.com");
        logger.fatal("Log de tipo FATAL, traineejava.blogspot.com");
    }
}


BasicConfigurator.configure(): Nos permite utilizar la configuración básica, tomando la consola como nuestra salida.
logger.debug, logger.info, logger.warn, logger.error, logger.fatal, nos permite definir el tipo de mensaje, dependiendo del nivel.


Salida Consola:
0 [main] DEBUG traineejava.blogspot.com.Prueba_log4J  - Log de tipo DEBUG, traineejava.blogspot.com
4 [main] INFO traineejava.blogspot.com.Prueba_log4J  - Log de tipo INFO,  traineejava.blogspot.com
4 [main] WARN traineejava.blogspot.com.Prueba_log4J  -  Log de tipo WARN,     traineejava.blogspot.com
4 [main] ERROR traineejava.blogspot.com.Prueba_log4J  - Log de tipo ERROR, traineejava.blogspot.com
5 [main] FATAL traineejava.blogspot.com.Prueba_log4J  - Log de tipo FATAL, traineejava.blogspot.com

Primera y simple entrega sobre log4j, espero complementar este contenido más adelante. Incluyendo archivo properties, log en archivo, base de datos. Además de aplicacar la última version que se llama log4j2.

Saludos!!!

Principios de EJB...


Despues de muuuucho tiempo que no había escrito, :(, me hice un tiempo y retomaré algunos temitas que estoy aprendiendo: D. Ahora es el turno de aprender de EJB's :O, veremos que sale! Empezaremos con los principios básicos y los tipso de EJB.

 Conceptos Básicos, pero básicos siu.
Aers para empezar, J2EE es una tecnología de SUN para desarrollar multi capas y tal! Es un stándar y es implementado por muchos proporcionadores de contenedores (provider container).

¿Qué nos proporcionan los contenedores? Nos ayudan con funcionalidades como el manejo de transacciones, clustering, caching, mensajería entre aplicaciones o en una aplicación y mucho mucho más jijiji.
Como servidor de aplicaciones usaremos JBOSS, pero espero poder tener el tiempo suficiente en el futuro, uf la vida la vida, para poder montar esta aplicación en algún otro servidor como WEBLOGIC, kiubo!.


Pero, me pregunto a mi mismo, mismo, ¿Qué xuxa es un EJB? 

EJB : EnterPrise Java Bean, es un API que forma parte del stándar para construir aplicaciones web empresariales(JEE, actualmente de Oracle Corporation, posom!). La idea que el programador se abstraiga de los problemas de una aplicación empresarial: concurrencia, transacciones, persistencia, seguridad, milesDeEtc. Tener claro que los ejb se disponen en un contendor dentro del Servidor de Aplicaciones. 
Se accede a él siempre a través de algún intermediario, existen dos tipos Proxy Local (Permite el acceso al EJB desde la misma máquina virtual) y Proxy Remoto (Permite el acceso desde una máquina remota).
No confundir los EJB con los JavaBeans, éstos últimos no pueden utilizarse en entornos distribuidos al no soportar nativamente la invocación remota (RMI), kiubo!


Exiten 3 tipos principales de EJB:

1.         Entity Beans: Pueden ser usado para mapear el acceso a una tabla de una base de datos a través de una clase (ORM: Object Relational Mapping). El servidor de aplicaciones te permite cargar, actualizar o eliminar los valores de una instancia de una clase directamente a la base de datos.

2.         Session Beans: Usados para implementar la funcionalidad de tu aplicación, existen dos tipos:
            a)         Stateful (con estado): Usado ejemplo para un carro de compras. El estado sería mantener los ítems comprados y la cantidad, en la sesión de tu aplicación y disponer de estos cuando el usuario confirme la compra o cuando desee agregar mas al carro o cuando desee eliminar o asdf, cuando quiera (mientras tenga la sesión abierta).
            b)         Stateless (sin estado): Es una clase, a veces llamada “de vida corta”. Un ejemplo es una clase que envie un mail, sólo llamas al método y dispones de él. Con un servidor de aplicaciones no necesitas instanciar la clase cada vez que necesites sus métodos, éste pasa una instancia desde un pool, siendo más eficiente.       

3.         Mesagge Driven Beans: Usan JMS (Java Messaging System) para enviar mensajes que quedan ubicados en una cola (queue), no requieren ser instanciados. En una aplicación de compra podría enviar una orden de mensaje a un gestor de almacenes, por ejemplo


Saludos desde Los Ángeles, Chile...
Siguiente post, crear un proyecto EJB...