J'utilise log4j2 (version 2.5) dans Java 8.Comment faire un fichier journal avec une seule ligne qui est écrasée à chaque fois?
J'ai besoin d'un fichier journal avec une seule ligne. Donc pour chaque écriture, la ligne précédente si elle existe doit être écrasée par la nouvelle ligne.
log4j.properties:
name=testLoggerOneLine
appenders=console, logFile
appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%-5level] %d{yyyy-MM-dd'T'HH:mm:ss.SSSZ}
[%t] %c{1} - %msg%n
appender.logFile.type=File
appender.logFile.name=LOGFILE
appender.logFile.fileName=C:/Users/mggl/workspace/Test/logs/Test.log
#appender.logFile.immediateFlush=true
#appender.logFile.append=false
#appender.logFile.createOnDemand=false
appender.logFile.layout.type=PatternLayout
appender.logFile.layout.pattern=%msg%n
loggers=logFile
logger.logFile.name=Test
logger.logFile.level=debug
logger.logFile.appenderRefs=logFile
logger.logFile.appenderRef.logFile.ref=LOGFILE
logger.logFile.additivity=false
rootLogger.level=debug
rootLogger.appenderRefs=stdout
rootLogger.appenderRef.stdout.ref=STDOUT
code fictif:
package Test.loggingTest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
public class OneLineLog
{
public static void main(String[] args)
{
Logger logger = LogManager.getLogger("testLoggerOneLine");
logger.info("first writing");
logger.info("second writing");
logger.info("third writing");
}
}
En test.log il doit être écrit que la dernière information de l'exploitation forestière.
L'option append avec la valeur false fait le travail pour un tas d'informations de journalisation à chaque démarrage de l'application. Je veux faire la même chose pour chaque ligne sans redémarrer l'application.
Toute idée ou suggestion est appréciée. Merci d'avance.
Par curiosité: pourquoi? –
C'est une exigence. Si c'était moi, je ne ferais pas un journal de cette façon. – mggl
Pourquoi quelqu'un aurait-il besoin de cela? Btw, je ne connais pas log4j, mais une rotation d'une ligne pourrait être la solution. –