[SOLVED] Jython Logging

Here you go. I also comment out the ‘Common pattern layout for appenders’ section at the top, so that I can see the full name of the loggers.

log4j2.logger.RuleEngineImpl.name = org.eclipse.smarthome.model.rule.runtime.internal.engine.RuleEngineImpl
log4j2.logger.RuleEngineImpl.level = DEBUG
log4j2.logger.RuleEngineImpl.additivity = false
log4j2.logger.RuleEngineImpl.appenderRefs = Rules
log4j2.logger.RuleEngineImpl.appenderRef.Rules.ref = jsr223

log4j2.logger.jsr223.name = jsr223
log4j2.logger.jsr223.level = DEBUG
log4j2.logger.jsr223.additivity = false
log4j2.logger.jsr223.appenderRefs = JSR223
log4j2.logger.jsr223.appenderRef.JSR223.ref = RULES

log4j2.logger.jython_core.name = jsr223.jython.core
log4j2.logger.jython_core.level = DEBUG
log4j2.logger.jython_core.additivity = false
log4j2.logger.jython_core.appenderRefs = Jython_Core
log4j2.logger.jython_core.appenderRef.Jython_Core.ref = jsr223

log4j2.logger.jython_core_metadata.name = jsr223.jython.core.metadata
log4j2.logger.jython_core_metadata.level = INFO
log4j2.logger.jython_core_metadata.additivity = false
log4j2.logger.jython_core_metadata.appenderRefs = Jython_Core_Metadata
log4j2.logger.jython_core_metadata.appenderRef.Jython_Core_Metadata.ref = jsr223

log4j2.logger.groovy_core.name = jsr223.groovy.core
log4j2.logger.groovy_core.level = DEBUG
log4j2.logger.groovy_core.additivity = false
log4j2.logger.groovy_core.appenderRefs = Groovy_Core
log4j2.logger.groovy_core.appenderRef.Groovy_Core.ref = jsr223

log4j2.logger.javascript_core.name = jsr223.javascript.core
log4j2.logger.javascript_core.level = DEBUG
log4j2.logger.javascript_core.additivity = false
log4j2.logger.javascript_core.appenderRefs = Javascript_Core
log4j2.logger.javascript_core.appenderRef.Javascript_Core.ref = jsr223

log4j2.logger.ESHAutomation.name = org.eclipse.smarthome.automation
log4j2.logger.ESHAutomation.level = INFO
log4j2.logger.ESHAutomation.additivity = false
log4j2.logger.ESHAutomation.appenderRefs = ESHAutomation
log4j2.logger.ESHAutomation.appenderRef.ESHAutomation.ref = jsr223

log4j2.logger.Automation.name = org.openhab.core.automation
log4j2.logger.Automation.level = INFO
log4j2.logger.Automation.additivity = false
log4j2.logger.Automation.appenderRefs = Automation
log4j2.logger.Automation.appenderRef.Automation.ref = jsr223

log4j2.logger.python.name = org.python
log4j2.logger.python.level = DEBUG
log4j2.logger.python.additivity = false
log4j2.logger.python.appenderRefs = Python
log4j2.logger.python.appenderRef.Python.ref = jsr223

# Rules
log4j2.appender.Rules.name = RULES
log4j2.appender.Rules.type = RollingRandomAccessFile
log4j2.appender.Rules.fileName = ${openhab.logdir}/rules/rules.log
log4j2.appender.Rules.filePattern = ${openhab.logdir}/rules/rules.log.%d{yyyyMMddHHmmss}
log4j2.appender.Rules.immediateFlush = true
log4j2.appender.Rules.append = true
log4j2.appender.Rules.layout.type = PatternLayout
log4j2.appender.Rules.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%c] - %m%n
log4j2.appender.Rules.policies.type = Policies
log4j2.appender.Rules.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.Rules.policies.size.size = 10MB
log4j2.appender.Rules.strategy.type = DefaultRolloverStrategy
log4j2.appender.Rules.strategy.max = 10
#log4j2.appender.Rules.encoding = UTF-8

# jsr223
log4j2.appender.jsr223.name = jsr223
log4j2.appender.jsr223.type = RollingRandomAccessFile
log4j2.appender.jsr223.fileName = ${openhab.logdir}/jsr223/jsr223.log
log4j2.appender.jsr223.filePattern = ${openhab.logdir}/jsr223/jsr223.log.%d{yyyyMMddHHmmss}
log4j2.appender.jsr223.immediateFlush = true
log4j2.appender.jsr223.append = true
log4j2.appender.jsr223.layout.type = PatternLayout
log4j2.appender.jsr223.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%c] - %m%n
log4j2.appender.jsr223.policies.type = Policies
log4j2.appender.jsr223.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.jsr223.policies.size.size = 10MB
log4j2.appender.jsr223.strategy.type = DefaultRolloverStrategy
log4j2.appender.jsr223.strategy.max = 10

Yes, that looks like it will work. Check here for a list of the things that are included in the default script scope. This will also work…

events.sendCommand("Loft_Light", "ON" if items.Loft_Hatch == OPEN else "OFF")
1 Like