De openHAB log laat mooi zien wat er allemaal gebeurd achter de schermen, maar als de status van een item vaak wijzigt heeft dit niet veel toegevoegde waarde en wordt het lastig om een probleem vast te stellen.
2021-03-03 10:12:28.138 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ZWaveNode022NASWR01ZEWallPlugSwitch_ElectricMeterVolts' changed from 236.72 to 235.53 2021-03-03 10:17:28.200 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ZWaveNode022NASWR01ZEWallPlugSwitch_ElectricMeterVolts' changed from 235.53 to 235.75 2021-03-03 10:22:28.232 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'ZWaveNode022NASWR01ZEWallPlugSwitch_ElectricMeterVolts' changed from 235.75 to 236.87
OpenHAB maakt voor de logging gebruik van log4j. Door een filter toe te voegen aan de configuratie, ben je van deze overbodige log gegevens af.
In onderstaand voorbeeld zie je hoe je de configuratie van log4j bewerkt. Binnen het onderdeel <RollingFile> is een <RegexFilter> toegevoegd. “.*” in het regex filter betekend 1 of meer willekeurige karakters. “.*INFO.*Volt.*” is dus iedere regel waarin INFO (het loglevel) en Volt voorkomt.
@openhab:~$ sudo nano /var/lib/openhab/etc/log4j2.xml
<!-- Event log appender -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/events.log" filePattern="${sys:openhab.logdir}/events.log.%i" name="EVENT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<RegexFilter regex=".*Volt.*" onMatch="DENY" onMismatch="NEUTRAL"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16 MB"/>
</Policies>
</RollingRandomAccessFile>
Meer informatie over logfilters staat op de site van Log4j
Heb je niet genoeg aan 1 filter, dan moet je de filters opnemen in een <Filters> blok
<Filters>
<RegexFilter regex=".*Volt.*" onMatch="DENY" onMismatch="NEUTRAL"/>
<RegexFilter regex=".*LastSeen.*" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
Leave a Reply