Seit dem openHAB Release 2.2.x hat sich durch den Einsatz von Log4j2 auch die Konfiguration des Loggings ein wenig geändert. Wer wie ich gerne Log Dateien nutzt und diese je nach Binding bzw. Anwendungszweck gerne trennt, muss einige Änderungen an der Datei org.ops4j.pax.logging.cfg vornehmen.
In diesem Beitrag erkläre ich außerdem am Beispiel des Legacy KNX Bindings, wie eine Konfiguration aussehen muss, die zwei Logger in eine Datei schreiben lässt.
Die Logging Konfiguration editieren wir wie bereits erwähnt in der Datei „org.ops4j.pax.logging.cfg“. Dazu geben wir folgenden Befehl ein:
sudo nano /var/lib/openhab2/etc/org.ops4j.pax.logging.cfg
Danach legen wir darin zwei Logger an, indem wir die folgenden Zeilen einfach an das Ende der Datei kopieren:
# openHAB KNX specific logging config
log4j2.logger.cali.name = tuwien.auto.calimero
log4j2.logger.cali.level = WARN
log4j2.logger.cali.additivity = false
log4j2.logger.cali.appenderRefs = knx
log4j2.logger.cali.appenderRef.knx.ref = KNX
log4j2.logger.knx.name = org.openhab.binding.knx
log4j2.logger.knx.level = WARN
log4j2.logger.knx.additivity = false
log4j2.logger.knx.appenderRefs = knx
log4j2.logger.knx.appenderRef.knx.ref = KNX
Wie wir sehen, braucht man für das Logging des Legacy KNX Bindings sowohl den „.auto.calimero“, als auch den eigentlichen „.binding.knx“-Namenraum. Man beachte, dass die „appender“ Parameter jeweils auf „knx“ verweisen. Ihr könnte diesem Beispiel folgend auch zwei andere oder eben mehr als zwei Logger konfigurieren, die dann alle in die selbe Datei schreiben.
Interessant sind vor allem die beiden Einträge zur „log4j.additivity“. Wenn diese nicht jeweils auf „false“ gestellt werden, landen entsprechende Einträge mit dem einstellten Log Level auch in der Standard Log Datei. Genau das möchte ich aber verhindern und eine dedizierte Datei „knx.log“ für alle KNX Belange haben.
Natürlich lässt sich das Log Level je nach benötigter Informationstiefe ändern. Die erlaubten Einträge sind: DEFAULT, OFF, ERROR, WARN, INFO, DEBUG oder TRACE.
Abschließend braucht es noch die eigentliche File Appender Konfiguration, die z.B. Dinge wie den Dateinamen definiert. Dazu benötigen wir folgende Zeilen:
# openHAB KNX file appender
log4j2.appender.knx.type = RollingRandomAccessFile
log4j2.appender.knx.name = KNX
log4j2.appender.knx.fileName = ${openhab.logdir}/knx.log
log4j2.appender.knx.filePattern = ${openhab.logdir}/knx.log.%i
log4j2.appender.knx.append = true
log4j2.appender.knx.layout.type = PatternLayout
log4j2.appender.knx.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-10.10c] - %m%n
log4j2.appender.knx.policies.type = Policies
log4j2.appender.knx.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.knx.policies.size.size = 2MB
Siehe auch https://www.openhab.org/docs/administration/logging.html
Ein Gedanke zu „openHAB 2.3.x – Log4j2 Beispiel Konfiguration KNX Binding Logger“