Ich muss sofort das Protokoll auf die Festplatte leeren und dann in den normalen Puffermodus schalten.Wie speichere ich einen gepufferten log4j FileAppender ohne Herunterfahren?
Die Voraussetzung ist, ich muss Stundenprotokoll erstellen. Beispiel: user_info.2017-09-08-18.log. Jeder stündliche erzeugt einen. Daher verwende ich einen ScheduledExecutorService, um eine einfache Zeichenfolge zu Beginn jeder Stunde zu protokollieren. Aber ich fand, dass, wenn der Puffer nicht voll ist, das Protokoll noch im Puffer ist. Also möchte ich sofort zu Beginn jeder Stunde ein Protokoll schreiben, stelle sicher, dass jede Stunde ein Protokoll hat. Daher ist Logger.shutdown() in dieser Situation keine geeignete Methode.
Dies ist meine Eigenschaften Definition:
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
Obwohl der Betrogene ist über "beim Herunterfahren", da * sind * Antworten, die vom Herunterfahren unabhängig sind oder nicht. – Fildor