J'ai besoin de vider immédiatement le journal sur le disque puis de le mettre en mode tampon normal.Comment faire pour vider un fichier log4j tamponné FileAppender sans arrêt?
L'exigence est que je dois générer le journal horaire. Par exemple, user_info.2017-09-08-18.log. Chaque heure en générera une. J'utilise donc un ScheduledExecutorService pour écrire une chaîne simple à consigner au début de chaque heure. Mais j'ai trouvé que si le tampon n'est pas plein, le journal est toujours dans le tampon. Donc, je veux immédiatement écrire un journal au début de chaque heure, assurez-vous que chaque heure a un journal. Donc, Logger.shutdown() n'est pas une méthode appropriée dans cette situation.
Ceci est ma propriétés définition:
log4j.appender.user_push_info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.user_info.File=/data/log/user_info
log4j.appender.user_info.DatePattern='.'yyyy-MM-dd-HH'.log'
log4j.appender.user_info.layout=org.apache.log4j.PatternLayout
log4j.appender.user_info.layout.ConversionPattern=%m%n
log4j.appender.user_info.BufferedIO=true
log4j.appender.user_info.BufferSize=8192
Bien que la dupe est sur le point "à l'arrêt", il * sont * des réponses indépendantes de l'arrêt ou non. – Fildor