style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Añadir fecha y hora al nombre del log

Hola amigos, estoy generando archivos de log con log4j, quisiera saber si es posible generar el archivo de log con el siguiente nombre:

[code]
log4j.appender.file.File=example_fecha_hora.log
[\code]

Donde fecha_hora, es la fecha y hora de generación del log.

Esto dentro del archivo de propiedades, si no es posible de realizar dentro del properties, es posible realizarlo dentro del xml de configuración del log???
O por último dentro del código java, es posible setear el nombre con que se generará el archivo log, para que quede como lo indiqué antes???.

Muchas gracias de antemano.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

Chécate ésta respuesta de

Chécate ésta respuesta de acá.
Con una búsqueda pitera en google me salió a la primera, aunque sería bueno que leyeras la documentación del log4j.

respuesta

neko069, gracias por tu respuesta, vieras que busque por todos lados en google y no me salio algo tan específico como tu busqueda, y con respecto a leer el manual lo he intente, pero mi inglés no es tan bueno y logré generar los log pero no pude lograrlo con nombre con fecha, muchas gracias por tu respuesta.

problema con solución propuesta

neko069 apliqué el ejemplo pero solo funciona si ha pasado 1 día desde que se generó el archivo de log entonces me aparece con la fecha y el nombre, pero talvez no me explique bien lo que yo quiero hacer es que si yo estoy generando el log ahora me aparezca con fecha, para el ejemplo que me diste seria

appender name="archivo" class="org.apache.log4j.DailyRollingFileAppender"
param name="File" value="archivo_fecha_y_hora_de_hoy.log"
param name="DatePattern" value=".yyyy-MM-dd"
layout class="org.apache.log4j.PatternLayout"
param name="ConversionPattern"
value="%d{yyyy-MMM-dd HH:mm:ss,SSS} [%t] %c %x%n %-5p %m%n"/
/layout
/appender

_fecha_y_hora_de_hoy con esto el archivo que estoy generando ahora queda en el momento así: archivo_21-03-2012 y hoy es 21-03-2012,

con la opción que dice el link solo queda el backup del log con fecha, es decir si hoy generé el log, mañana tendra la fecha agregada al nombre.

Muchas gracias.

solución

neko069, esto es lo que quería hacer:

con este código se genera el archivo de log con el siguiente nombre: archivo_21.03.2012.log, y es así como lo necesitaba, es decir: nombredelarchivo_fechadegeneracion.log

este es el código:

public static void main(String[] args) throws IOException {

String logfile = "archivo.log";
Date fecha = new Date();

// TODO Auto-generated method stub
Logger log = Logger.getLogger(Main.class);
SimpleDateFormat formato = new SimpleDateFormat("dd.MM.yyyy");
String fechaAc = formato.format(fecha);
System.out.println(fechaAc);
PatternLayout defaultLayout = new PatternLayout("%p %c,line %L,%d{dd.MM.yyyy/HH:mm:ss},%m%n");
RollingFileAppender rollingFileAppender = new RollingFileAppender();
rollingFileAppender.setFile("archivo_"+fechaAc+".log", true, false, 0);
//rollingFileAppender.setMaxFileSize("10MB");
//rollingFileAppender.setMaxBackupIndex(5);
rollingFileAppender.setLayout(defaultLayout);

log.removeAllAppenders();
log.addAppender(rollingFileAppender);
log.setAdditivity(false);

log.info("Nueva Prueba.");
log.info("Exiting application.");
}

Muchas Gracias.

Imagen de neko069

Ok

Gracias a ti por compartir el código, habrá muchos a los que les sirva.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">