Java Log4j sobrescribe la salida de FileAppenders

Estoy usando Log4j para registrar la salida de mi aplicación. Los archivos log4j.properties contienen lo siguiente:

    log4j.logger.DEFAULT_LOGGER=INFO,main_log, stdout
    log4j.additivity.DEFAULT_LOGGER = false

    # Direct log messages to a log file
    log4j.appender.main_log=org.apache.log4j.FileAppender
    log4j.appender.main_log.File=mainLog.log
    log4j.appender.main_log.layout=org.apache.log4j.PatternLayout
    log4j.appender.main_log.layout.ConversionPattern=%d{yyyy mm dd HH:mm:ss} %5p %c{1}:%L - %m%n

    # Direct log messages to stdout
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy mm dd HH:mm:ss} %5p %c{1}:%L - %m%n

Actualmente sucede lo siguiente. Cuando comienzo mi método principal donde llamo

static Logger log = Logger.getLogger("DEFAULT_LOGGER");
log.fatal("Process Logger");

imprime el resultado en stdout y file.log, lo cual está bien. Pero cuando inicio mi aplicación por segunda vez, agrega la salida al archivo existente. Pero quiero sobrescribir el archivo de registro. es posible? (No quiero usar Java para eliminar, tampoco quiero eliminarlo manualmente, por supuesto) ¿Hay una opción en Log4J para indicarle al registrador que sobrescriba o agregue la salida?

Respuesta 1

Necesita usar RollingFileAppender para esto.

Verifique las siguientes preguntas SO en líneas similares:

  • Publicar uno
  • Publicar dos
Respuesta: 2

Utilizo Jersey y Jackson para implementar servicios RESTful proporcionados por mi servidor. Los datos se intercambian entre el cliente y el servidor como documentos JSON. Jackson hace el mapeo entre los documentos JSON y ...

Me preocupa la forma en que puede cambiar los campos en los objetos sin usar realmente las operaciones en ellos. por ejemplo, digamos que tengo la siguiente clase: public class MultisetPair {private Object ...

La documentación de blazegraph para High Availability carece. Para empezar, la documentación indica que descargue el código fuente y ejecute "ant deploy-artifact". Esto es incorrecto ya que han hecho la transición a ...

Hola comunidad de desbordamiento de pila, estoy realizando un procesamiento de varios pasos en algunos datos que recibo con un Servlet de Java. El proceso actual que tengo es que ingreso los archivos a un servidor usando Apache File ...