[SOLVED] Log4j2 logging two bindings one file

I log all my bindings to separate files. However, modbus has two bindings: org.openhab.binding.modbus and org.openhab.io.transport.modbus. How can I modify my logger to log both to the one modbus file? I tried just using a comma and putting them both under log4j2.logger.modbus.name, but that did not work.

# modbus
log4j2.logger.modbus.name = org.openhab.binding.modbus
log4j2.logger.modbus.level = INFO
log4j2.logger.modbus.additivity = false
log4j2.logger.modbus.appenderRefs = modbus
log4j2.logger.modbus.appenderRef.modbus.ref = modbus
log4j2.appender.modbus.name = modbus
log4j2.appender.modbus.type = RollingRandomAccessFile
log4j2.appender.modbus.fileName = /var/log/openhab2/modbus.log
log4j2.appender.modbus.filePattern = /var/log/openhab2/modbus.log.%i
log4j2.appender.modbus.immediateFlush = true
log4j2.appender.modbus.append = true
log4j2.appender.modbus.layout.type = PatternLayout
log4j2.appender.modbus.layout.pattern = %d{dd-MMM-yyyy HH:mm:ss.SSS} [%-5.5p] [%-50.50c] - %m%n
log4j2.appender.modbus.policies.type = Policies
log4j2.appender.modbus.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.modbus.policies.size.size = 1000MB
log4j2.appender.modbus.strategy.type = DefaultRolloverStrategy
log4j2.appender.modbus.strategy.max = 10

You can share appender for multiple log categories - meaning you just need to repeat a part which binds transport package with new log destination:

# binding
log4j2.logger.modbus.name = org.openhab.binding.modbus
log4j2.logger.modbus.level = INFO
log4j2.logger.modbus.additivity = false
log4j2.logger.modbus.appenderRef.modbus.ref = modbus

# transport
log4j2.logger.transport.name = org.openhab.io.transport.modbus
log4j2.logger.transport.level = INFO
log4j2.logger.transport.additivity = false
log4j2.logger.transport.appenderRef.modbus.ref = modbus
2 Likes