Code: Select all
log4j.appender.defaultAppender.layout.ConversionPattern=[%d{yy-MM-dd HH:mm:ss.SSS}] %20C{3}:%L [%-6.6p] => %m%N
< /code>
Ausgabe erzeugt ähnlich wie bei: < /p>
[25-01-10 12:34:56.789] utils.socket.SocketStream$SocketWorker:515 [INFO ] => SMD-0: Testing for connection
< /code>
Nach dem Upgrade ohne Änderungen an Konfigurationsdateien oder Code verwendet die Protokollausgabe die angegebene Formatierung nicht mehr. Die Ausgabe ähnelt: < /p>
INFO | SMD-0: Testing for connection
ERROR | SMD-0: The OutputStream is null
Die App wird als Dienst ausgeführt. Das Startskript leitet die Ausgabe in eine Protokolldatei um. Ich habe festgestellt, dass dies steuert, wohin die Protokolleinträge gehen. Der Code verwendet alle die Klasse Log4J Logger Überprüft alle Vorkommen von ConversionSpattern . In allen Vorkommen wird ein Datums- und Zeitstempel verwendet. Es ist fast so > Die Datei hatte früher die Zeilen log4j.configuration = $ {config_dir} /log4j.properties . Ich habe diese Eigenschaft in $ {config_dir} /log4j2.Properties . >
Code: Select all
name=PropertiesConfig
rootLogger.level=DEBUG
rootLogger.appenderRef.stdout.ref=STDOUT
rootLogger.appenderRef.logfile.ref=logfile
log4j.appender.defaultAppender.File=${log_dir}/app.log
appender.stdout.type=Console
appender.stdout.name=STDOUT
appender.stdout.layout.type=PatternLayout
appender.stdout.layout.pattern=[%d{yy-MM-dd HH:mm:ss.SSS}] %20C{3}:%L [%-6.6p] => %m%n
appender.stdout.filter.threshold.type=ThresholdFilter
appender.stdout.filter.threshold.level=debug
appender.logfile.type=File
appender.logfile.name=logfile
appender.logfile.fileName={log_dir}/logfile.log
appender.logfile.layout.type=PatternLayout
appender.logfile.layout.pattern=[%d{yy-MM-dd HH:mm:ss.SSS}] %20C{3}:%L [%-6.6p] => %m%n
appender.logfile.filter.threshold.type=ThresholdFilter
appender.logfile.filter.threshold.level=debug
< /code>
Zur Laufzeit geht alle Ausgaben ohne Verwendung des Musters an stdout. logFile.log