Abbiamo diversi server di applicazioni Java in esecuzione qui, con diverse app. Registrano tutti con Log4J nello stesso file system, che abbiamo creato solo per questo motivo. Di tanto in tanto capita che il file system esaurisce lo spazio e l'applicazione ottieneLog4J è in grado di ripristinare dal disco pieno?
log4j:ERROR Failed to flush writer,
java.io.IOException
Purtroppo Log4J non recuperare da questo errore, in modo che anche dopo che lo spazio viene liberato nel file system, non più registri sono scritti da quell'app. Ci sono opzioni, di programmazione o di impostazione, per far ripartire Log4J, oltre a riavviare l'app?
Da ciò che raccolgo da http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/helpers/OnlyOnceErrorHandler.html l'errore viene generato una volta e dopo questo è finito. Quello che desidererei è che, sebbene l'errore venga lanciato una sola volta, l'appender continua a scrivere su quel file system ... forse con pause di 5 minuti ... sembra che un wrapper attorno all'appender sia un'idea valida – dertoni
Se si sta utilizzando OnlyOnceErrorHandler, si potrebbe prendere in considerazione l'utilizzo del FallbackErrorHandler (http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/varia/FallbackErrorHandler.html). In questo modo puoi specificare un secondo appender (magari un appender di posta elettronica) quando il primo non può più scrivere. Questo gestirà molto di ciò che farebbe il wrapping. – GaryF