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.
- Inicie sesión o regístrese para enviar comentarios
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.
Ok
Gracias a ti por compartir el código, habrá muchos a los que les sirva.