Log Info eines Item in sep. Datei
-
- Beiträge: 457
- Registriert: 6. Jan 2021 18:05
Log Info eines Item in sep. Datei
Moin zusammen,
Ist es Möglich, von einem Item eine Art Protokoll zu führen, welche in eine txt Datei oder so geschrieben wird und fortlaufen ist??
Einfaches Beispiel:
ITEM -> ON -> Eintrag
ITEM -> OFF -> Eintrag
Eventuell auch Zahlenwerte...
ITEM -> 50% -> Eintrag
ITEM -> 100% -> Eintrag
Das Ganze soll, wenn möglich, in eine Art TXT Datei, fortlaufen, mit Zeitstempel.
Danke und Gruss
Ist es Möglich, von einem Item eine Art Protokoll zu führen, welche in eine txt Datei oder so geschrieben wird und fortlaufen ist??
Einfaches Beispiel:
ITEM -> ON -> Eintrag
ITEM -> OFF -> Eintrag
Eventuell auch Zahlenwerte...
ITEM -> 50% -> Eintrag
ITEM -> 100% -> Eintrag
Das Ganze soll, wenn möglich, in eine Art TXT Datei, fortlaufen, mit Zeitstempel.
Danke und Gruss
Gruss mad-mike
openHABian 4.2.2 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.2.2 auf Raspberry Pi 4 Mod. b (8GB)
- udo1toni
- Beiträge: 14828
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Log Info eines Item in sep. Datei
Du kannst in log4j2 beliebige Appender anlegen und dafür Filter definieren. Schau mal in die Datei $OPENHAB_USERDATA/etc/log4j2.xml. Dort musst Du einen neuen Appender anlegen, analog zu den vorhandenen, also z.B. so:
Dazu musst Du noch einen Logger anlegen:
Wichtig ist auch, dass dieser zusätzliche Logger vor allen anderen Loggern gelistet wird, damit das Event überhaupt beim Logger ankommt. (das hat mit dem Parameter additivity zu tun, sowie der Tatsache, dass der Loger die gleichen Infos abgreift wie EVENT.
Eventuell reicht es auch, den Appender Referrer zusätzlich passend einzutragen:
Da bin ich mir aber nicht sicher...
Der Trick ist jedenfalls, dass im Appender der Regex Filter nur das Item durchlässt, welches Du mitloggen willst. Hier kannst Du natürlich auch mit Pattern arbeiten und mehrere (ganz bestimmte) Items loggen.
Code: Alles auswählen
<!-- Item log appender -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/meinItem.log" filePattern="${sys:openhab.logdir}/meinItem.log.%i.gz" name="ITEM">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<RegexFilter regex="meinItem" onMatch="ACCEPT" onMismatch="DENY"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16 MB"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingRandomAccessFile>
Code: Alles auswählen
<Logger additivity="true" level="INFO" name="openhab.event">
<AppenderRef ref="ITEM"/>
</Logger>
Eventuell reicht es auch, den Appender Referrer zusätzlich passend einzutragen:
Code: Alles auswählen
<Logger additivity="false" level="INFO" name="openhab.event">
<AppenderRef ref="EVENT"/>
<AppenderRef ref="OSGI"/>
<AppenderRef ref="ITEM"/>
</Logger>
Der Trick ist jedenfalls, dass im Appender der Regex Filter nur das Item durchlässt, welches Du mitloggen willst. Hier kannst Du natürlich auch mit Pattern arbeiten und mehrere (ganz bestimmte) Items loggen.
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet
-
- Beiträge: 457
- Registriert: 6. Jan 2021 18:05
Re: Log Info eines Item in sep. Datei
Moin,
Danke dir.
Also vor weg: die Datei befindet sich in:
Dann habe ich versucht das ganze dort einzubauen, und Klassiker: geht nichts mehr. eventmonitor lief auch nicht mehr. Gut, zurück gelöscht, nun geht der Eventmonitor.
Eventuell habe ich auch beim Einsetzen Fehler gemacht. naheliegend, jedenfalls werde ich es heute Abend nochmals versuchen.
Die *.log Datei wurde erstellt. Also, soweit schon mal alles korrekt. blieb aber leer.
spiel es eine Rolle, an welcher stelle man den Code einsetzt? ich versuchte mich an den vorhandenen Code zu orientieren.
so sieht das bei mir aus.
Oder habe ich eventuell ein Fehler gemacht bei dem einsetzen des passenden ITEM?
Danke dir.
Also vor weg: die Datei befindet sich in:
Code: Alles auswählen
/var/lib/openhab/etc
Eventuell habe ich auch beim Einsetzen Fehler gemacht. naheliegend, jedenfalls werde ich es heute Abend nochmals versuchen.
Die *.log Datei wurde erstellt. Also, soweit schon mal alles korrekt. blieb aber leer.
spiel es eine Rolle, an welcher stelle man den Code einsetzt? ich versuchte mich an den vorhandenen Code zu orientieren.
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Configuration monitorInterval="10">
<Appenders>
<!-- Console appender not used by default (see Root logger AppenderRefs) -->
<Console name="STDOUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
</Console>
<!-- Rolling file appender -->
<RollingFile fileName="${sys:openhab.logdir}/openhab.log" filePattern="${sys:openhab.logdir}/openhab.log.%i.gz" name="LOGFILE">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16 MB"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingFile>
<!-- Event log appender -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/events.log" filePattern="${sys:openhab.logdir}/events.log.%i.gz" name="EVENT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16 MB"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingRandomAccessFile>
<!-- Audit file appender -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/audit.log" filePattern="${sys:openhab.logdir}/audit.log.%i.gz" name="AUDIT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="8 MB"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingRandomAccessFile>
<!-- OSGi appender -->
<PaxOsgi filter="*" name="OSGI"/>
</Appenders>
<Loggers>
<!-- Root logger configuration -->
<Root level="WARN">
<AppenderRef ref="LOGFILE"/>
<AppenderRef ref="OSGI"/>
</Root>
<!-- Karaf Shell logger -->
<Logger level="OFF" name="org.apache.karaf.shell.support">
<AppenderRef ref="STDOUT"/>
</Logger>
<!-- Security audit logger -->
<Logger additivity="false" level="INFO" name="org.apache.karaf.jaas.modules.audit">
<AppenderRef ref="AUDIT"/>
</Logger>
<!-- openHAB specific logger configuration -->
<Logger level="INFO" name="org.openhab"/>
<!-- OpenHAB4 disable Items logging updated without change -->
<Logger level="ERROR" name="openhab.event.ItemStateUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.GroupStateUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemStateEvent"/>
<Logger level="ERROR" name="openhab.event.ItemAddedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemChannelLinkAddedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemChannelLinkRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.ChannelDescriptionChangedEvent"/>
<Logger level="ERROR" name="openhab.event.ThingStatusInfoEvent"/>
<Logger level="ERROR" name="openhab.event.ThingAddedEvent"/>
<Logger level="ERROR" name="openhab.event.ThingUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.ThingRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.InboxUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.RuleStatusInfoEvent"/>
<Logger level="ERROR" name="openhab.event.RuleAddedEvent"/>
<Logger level="ERROR" name="openhab.event.RuleRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.StartlevelEvent"/>
<Logger level="ERROR" name="openhab.event.AddonEvent"/>
<Logger additivity="false" level="INFO" name="openhab.event">
<AppenderRef ref="EVENT"/>
<AppenderRef ref="OSGI"/>
</Logger>
<Logger level="ERROR" name="javax.jmdns"/>
<Logger level="ERROR" name="org.jupnp"/>
<!-- This suppresses all Maven download issues from the log when doing feature installations -->
<!-- as we are logging errors ourselves in a nicer way anyhow. -->
<Logger level="ERROR" name="org.ops4j.pax.url.mvn.internal.AetherBasedResolver"/>
<!-- Filters known issues of pax-web (issue link to be added here). -->
<!-- Can be removed once the issues are resolved in an upcoming version. -->
<Logger level="OFF" name="org.ops4j.pax.web.pax-web-runtime"/>
<!-- Filters known issues of lsp4j, see -->
<!-- https://github.com/eclipse/smarthome/issues/4639 -->
<!-- https://github.com/eclipse/smarthome/issues/4629 -->
<!-- https://github.com/eclipse/smarthome/issues/4643 -->
<!-- Can be removed once the issues are resolved in an upcoming version. -->
<Logger level="OFF" name="org.eclipse.lsp4j"/>
<!-- Filters warnings for events that could not be delivered to a disconnected client. -->
<Logger level="ERROR" name="org.apache.cxf.jaxrs.sse.SseEventSinkImpl"/>
<!-- Filters warnings from broken connections during startup -->
<!-- https://github.com/openhab/openhab-core/issues/2998 -->
<Logger level="ERROR" name="org.apache.cxf.phase.PhaseInterceptorChain"/>
<!-- Filters known issues of KarServiceImpl, see -->
<!-- https://github.com/openhab/openhab-distro/issues/519#issuecomment-351944506 -->
<!-- Can be removed once the issues are resolved in an upcoming version. -->
<Logger level="ERROR" name="org.apache.karaf.kar.internal.KarServiceImpl"/>
<!-- Filters warnings about unavailable ciphers when JCE is not installed, see -->
<!-- https://github.com/openhab/openhab-distro/issues/999 -->
<Logger level="ERROR" name="org.apache.karaf.shell.ssh.SshUtils"/>
<!-- Filters known issues of javax.mail, see -->
<!-- https://github.com/openhab/openhab-addons/issues/5530 -->
<Logger level="ERROR" name="javax.mail"/>
<!-- Filters disconnection warnings of the ChromeCast Java API, see -->
<!-- https://github.com/openhab/openhab-addons/issues/3770 -->
<Logger level="ERROR" name="su.litvak.chromecast.api.v2.Channel"/>
<!-- Added by Karaf to prevent debug logging loops, see -->
<!-- https://issues.apache.org/jira/browse/KARAF-5559 -->
<Logger level="ERROR" name="org.apache.sshd"/>
<Logger name="org.openhab.binding.shelly"/>
</Loggers>
</Configuration>
Oder habe ich eventuell ein Fehler gemacht bei dem einsetzen des passenden ITEM?
Gruss mad-mike
openHABian 4.2.2 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.2.2 auf Raspberry Pi 4 Mod. b (8GB)
- udo1toni
- Beiträge: 14828
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Log Info eines Item in sep. Datei
Also, der Appender kommt einfach da hin, wo auch die anderen Appender sind (am besten zwischen EVENT und AUDIT). Die Definition ist getaggt, Du musst nach dem schließenden Tag </RollingRandomAccessFile> und dem nächsten öffnenden Tag <RollingRandomAccessFile ... den neuen Appender einfügen. Sinnvollerweise lässt Du aber den Kommentag beim nächsten öffnenden Tag stehen und fügst zwischen schließendem Tag und nächstem Kommentar ein.
EDIT: Ich habe die Grenzen vergessen... guten Morgen! Das RegEx Pattern muss natürlich so aussehen:
das Pattern sucht zeilenweise, und der Itemname steht ja nicht alleine da...
Da der Itemname von einzelnen Hockkomma eingeschlossen ist, kannst Du das Pattern auch genauer gestalten:
findet nur Zeilen, in denen EXAKT 'meinItem' auftaucht.
EDIT: Ich habe die Grenzen vergessen... guten Morgen! Das RegEx Pattern muss natürlich so aussehen:
Code: Alles auswählen
<RegexFilter regex=".*meinItem.*" onMatch="ACCEPT" onMismatch="DENY"/>
Da der Itemname von einzelnen Hockkomma eingeschlossen ist, kannst Du das Pattern auch genauer gestalten:
Code: Alles auswählen
<RegexFilter regex=".*'meinItem'.*" onMatch="ACCEPT" onMismatch="DENY"/>
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet
-
- Beiträge: 5
- Registriert: 23. Jun 2020 19:35
- Wohnort: Essen
Re: Log Info eines Item in sep. Datei
Hallo zusammen,
ich habe scheinbar Tomaten auf den Augen, oder verstehe es nicht.
Die logs werden aktuell identisch ins shelly.log und ins event.log geschrieben. Wobei der Plan folgender ist:
Alle logs die von den Shelly produziert werden (außer 3EM) sollen ins shelly.log, alle anderen items (logs) bleiben vorerst im event.log.
Die logs von 3EM (Energiemessung) werden tatsächlich ins 3em.log geschrieben, und tauchen nirgendwo anders auf!
Vielleicht hat einer von euch ne Idee wo der Fehler ist?
Vielen Dank
Christian
ich habe scheinbar Tomaten auf den Augen, oder verstehe es nicht.
Die logs werden aktuell identisch ins shelly.log und ins event.log geschrieben. Wobei der Plan folgender ist:
Alle logs die von den Shelly produziert werden (außer 3EM) sollen ins shelly.log, alle anderen items (logs) bleiben vorerst im event.log.
Die logs von 3EM (Energiemessung) werden tatsächlich ins 3em.log geschrieben, und tauchen nirgendwo anders auf!
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8" standalone="no"?><Configuration monitorInterval="10">
<Appenders>
<!-- Console appender not used by default (see Root logger AppenderRefs) -->
<Console name="STDOUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
</Console>
<!-- Rolling file appender -->
<RollingFile fileName="${sys:openhab.logdir}/openhab.log" filePattern="${sys:openhab.logdir}/openhab.log.%i.gz" name="LOGFILE">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16 MB"/>
</Policies>
<DefaultRolloverStrategy max="8"/>
</RollingFile>
<!-- Event log appender -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/events.log" filePattern="${sys:openhab.logdir}/events.log.%i.gz" name="EVENT">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<RegexFilter regex=".*Energiemessung.*" onMatch="DENY" onMismatch="ACCEPT"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16 MB"/>
</Policies>
<DefaultRolloverStrategy max="8"/>
</RollingRandomAccessFile>
<!-- Shelly 3EM logfile -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/3em.log" filePattern="${sys:openhab.logdir}/3em.log.%i.gz" name="3EM">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<RegexFilter regex=".*Energiemessung.*" onMatch="ACCEPT" onMismatch="DENY"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16MB"/>
</Policies>
<DefaultRolloverStrategy max="8"/>
</RollingRandomAccessFile>
<!-- Shelly 3EM logfile ende -->
<!-- Shelly SHELLY-rest logfile -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/shelly.log" filePattern="${sys:openhab.logdir}/shelly.log.%i.gz" name="SHELLY">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<RegexFilter regex=".*Energiemessung.*" onMatch="DENY" onMismatch="ACCEPT"/>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16MB"/>
</Policies>
<DefaultRolloverStrategy max="8"/>
</RollingRandomAccessFile>
<!-- Shelly SHELLY-rest logfile ende -->
<!-- OSGi appender -->
<PaxOsgi filter="*" name="OSGI"/>
</Appenders>
<Loggers>
<!-- Root logger configuration -->
<Root level="WARN">
<AppenderRef ref="LOGFILE"/>
<AppenderRef ref="OSGI"/>
</Root>
<!-- Karaf Shell logger -->
<Logger level="OFF" name="org.apache.karaf.shell.support">
<AppenderRef ref="STDOUT"/>
</Logger>
<!-- openHAB specific logger configuration -->
<Logger level="INFO" name="org.openhab"/>
<Logger level="ERROR" name="openhab.event.ItemStateEvent"/>
<Logger level="ERROR" name="openhab.event.ItemStateUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.GroupStateUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemAddedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemChannelLinkAddedEvent"/>
<Logger level="ERROR" name="openhab.event.ItemChannelLinkRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.ChannelDescriptionChangedEvent"/>
<Logger level="ERROR" name="openhab.event.ThingStatusInfoEvent"/>
<Logger level="ERROR" name="openhab.event.ThingAddedEvent"/>
<Logger level="ERROR" name="openhab.event.ThingUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.ThingRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.InboxUpdatedEvent"/>
<Logger level="ERROR" name="openhab.event.RuleStatusInfoEvent"/>
<Logger level="ERROR" name="openhab.event.RuleAddedEvent"/>
<Logger level="ERROR" name="openhab.event.RuleRemovedEvent"/>
<Logger level="ERROR" name="openhab.event.StartlevelEvent"/>
<Logger level="ERROR" name="openhab.event.AddonEvent"/>
<Logger additivity="false" level="INFO" name="openhab.event">
<AppenderRef ref="EVENT"/>
<AppenderRef ref="OSGI"/>
<!-- ergänzung -->
<AppenderRef ref="3EM"/>
<AppenderRef ref="SHELLY"/>
<!-- ergänzung ende -->
</Logger>
<Logger level="ERROR" name="javax.jmdns"/>
<Logger level="ERROR" name="org.jupnp"/>
<!-- This suppresses all Maven download issues from the log when doing feature installations -->
<!-- as we are logging errors ourselves in a nicer way anyhow. -->
<Logger level="ERROR" name="org.ops4j.pax.url.mvn.internal.AetherBasedResolver"/>
<!-- Filters known issues of pax-web (issue link to be added here). -->
<!-- Can be removed once the issues are resolved in an upcoming version. -->
<Logger level="OFF" name="org.ops4j.pax.web.pax-web-runtime"/>
<!-- Filters known issues of lsp4j, see -->
<!-- https://github.com/eclipse/smarthome/issues/4639 -->
<!-- https://github.com/eclipse/smarthome/issues/4629 -->
<!-- https://github.com/eclipse/smarthome/issues/4643 -->
<!-- Can be removed once the issues are resolved in an upcoming version. -->
<Logger level="OFF" name="org.eclipse.lsp4j"/>
<!-- Filters warnings for events that could not be delivered to a disconnected client. -->
<Logger level="ERROR" name="org.apache.cxf.jaxrs.sse.SseEventSinkImpl"/>
<!-- Filters warnings from broken connections during startup -->
<!-- https://github.com/openhab/openhab-core/issues/2998 -->
<Logger level="ERROR" name="org.apache.cxf.phase.PhaseInterceptorChain"/>
<!-- Filters known issues of KarServiceImpl, see -->
<!-- https://github.com/openhab/openhab-distro/issues/519#issuecomment-351944506 -->
<!-- Can be removed once the issues are resolved in an upcoming version. -->
<Logger level="ERROR" name="org.apache.karaf.kar.internal.KarServiceImpl"/>
<!-- Filters warnings about unavailable ciphers when JCE is not installed, see -->
<!-- https://github.com/openhab/openhab-distro/issues/999 -->
<Logger level="ERROR" name="org.apache.karaf.shell.ssh.SshUtils"/>
<!-- Filters known issues of javax.mail, see -->
<!-- https://github.com/openhab/openhab-addons/issues/5530 -->
<Logger level="ERROR" name="javax.mail"/>
<!-- Filters disconnection warnings of the ChromeCast Java API, see -->
<!-- https://github.com/openhab/openhab-addons/issues/3770 -->
<Logger level="ERROR" name="su.litvak.chromecast.api.v2.Channel"/>
<!-- Added by Karaf to prevent debug logging loops, see -->
<!-- https://issues.apache.org/jira/browse/KARAF-5559 -->
<Logger level="WARN" name="org.apache.sshd"/>
<!-- Logger für Shelly-Binding -->
<Logger name="org.openhab.binding.shelly" level="INFO" additivity="true">
<AppenderRef ref="SHELLY"/>
</Logger>
<!-- Logger für Shelly-Binding ende -->
</Loggers>
</Configuration>
Vielleicht hat einer von euch ne Idee wo der Fehler ist?
Vielen Dank
Christian
openHAB4.2.2 im Container auf einem Docker-Swarm-Cluster
- udo1toni
- Beiträge: 14828
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Log Info eines Item in sep. Datei
Na, Du musst halt den Regex Filter erweitern... Bezüglich der Items kann das schnell schwierig werden, weil Items eigentlich komplett hardwareunabhängig sind und auch sein sollen. Du müsstest also z.B. alle Itemnamen dergestalt anpassen, dass der Begriff shelly vorkommt und anschließend den Regex passend erweitern, so dass Zeilen, die *shelly* enthalten nur noch in shelly.log landen.
Ich kann den Impuls verstehen, das so zu tun, aber der Aufwand kann schnell unverhältnismäßig werden, zumal ja (wie gesagt) Items eigentlich nicht auf die Hardware bezogen sein sollten. (Gemeint ist damit: Wenn z.B. mein Shelly Zwischenstecker kaputt geht, kann ich einen beliebigen anderen Zwischenstecker als Austausch verwenden und das selbe(!) Item weiter verwenden - das muss dann kein shelly Produkt sein, es kann zigbee, zwave, whatever sein, völlig egal...)
Man kann Log-Dateien prima auf bestimmte Items filtern, so dass man sich Logs mit bestimmten Items auch aus den bestehenden Logdateien erzeugen kann, z.B.erzeugt eine Datei shelly.log im home-Verzeichnis des angemeldeten Users, in der Datei sind anschließend alle Logzeilen aus events.log enthalten, in denen die Zeichenfolge shelly vorkommt (ohne Rücksicht auf Groß/Kleinschreibung, das ist die Option -i)
Die RegexFilter Definitionen können auch in mehreren Zeilen erfolgen, siehe Beispiel hier: https://community.openhab.org/t/unable- ... l/143343/1, das ist dann für die events.log wichtig, wo verschiedene Muster aussortiert werden müssten.
Ich kann den Impuls verstehen, das so zu tun, aber der Aufwand kann schnell unverhältnismäßig werden, zumal ja (wie gesagt) Items eigentlich nicht auf die Hardware bezogen sein sollten. (Gemeint ist damit: Wenn z.B. mein Shelly Zwischenstecker kaputt geht, kann ich einen beliebigen anderen Zwischenstecker als Austausch verwenden und das selbe(!) Item weiter verwenden - das muss dann kein shelly Produkt sein, es kann zigbee, zwave, whatever sein, völlig egal...)
Man kann Log-Dateien prima auf bestimmte Items filtern, so dass man sich Logs mit bestimmten Items auch aus den bestehenden Logdateien erzeugen kann, z.B.
Code: Alles auswählen
cat /var/log/openhab/events.log | grep -i shelly > ~/shelly.log
Die RegexFilter Definitionen können auch in mehreren Zeilen erfolgen, siehe Beispiel hier: https://community.openhab.org/t/unable- ... l/143343/1, das ist dann für die events.log wichtig, wo verschiedene Muster aussortiert werden müssten.
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet
-
- Beiträge: 253
- Registriert: 22. Sep 2018 10:38
Re: Log Info eines Item in sep. Datei
Großer Meister, jetzt schmeiße ich mal den Herr-Lehrer-ich-weiß-was-Modus an, mea cupla.
In dem Beispiel
Lösung, siehe 2. Beitrag, die verschiedenen Regex-Ausdrücke durch ein | trennen.
Schreibe ich auch nur, weil ich das nämlich auch so im Einsatz habe und damals lange danach gesucht habe.
In dem Beispiel
wird im ersten Beitrag des Topics beschrieben, dass mehrere Zeilen gerade nicht funktionieren.Die RegexFilter Definitionen können auch in mehreren Zeilen erfolgen, siehe Beispiel hier: https://community.openhab.org/t/unable- ... l/143343/1,
Lösung, siehe 2. Beitrag, die verschiedenen Regex-Ausdrücke durch ein | trennen.
Schreibe ich auch nur, weil ich das nämlich auch so im Einsatz habe und damals lange danach gesucht habe.
Zuletzt geändert von nw378 am 3. Okt 2024 17:00, insgesamt 1-mal geändert.
openHAB 4.3 @ RPi 4 / SSD - InfluxDB2 und Grafana @ Synology Docker - KNX
-
- Beiträge: 5
- Registriert: 23. Jun 2020 19:35
- Wohnort: Essen
Re: Log Info eines Item in sep. Datei
Hallo Udo,
erstmal Danke für deine Antwort.
Natürlich sind meine Items nicht mit dem Hersteller tag versehen, als Bsp. EnergiemessungEG_Kumulierter_Verbrauch usw., EnergiemessungUG_Kumulierter_Verbrauch usw. das wären die beiden 3EM die erzeugen soviel Müll im log, dass es schwierig ist das events.log in Echtzeit zu lesen, um herauszufinden warum z.b. eine Regel gezogen hat aber das Ereignis nicht ausgelöst hat.
Aber egal die beiden 3EMs schreiben Ihr log ja nun korrekt ins 3em.log! dadurch wird das log schon ganz gut entschlackt.
Mein Problem ist es aber das dass shelly.log und events.log völlig gleich aussieht.
VG
Christian
erstmal Danke für deine Antwort.
Natürlich sind meine Items nicht mit dem Hersteller tag versehen, als Bsp. EnergiemessungEG_Kumulierter_Verbrauch usw., EnergiemessungUG_Kumulierter_Verbrauch usw. das wären die beiden 3EM die erzeugen soviel Müll im log, dass es schwierig ist das events.log in Echtzeit zu lesen, um herauszufinden warum z.b. eine Regel gezogen hat aber das Ereignis nicht ausgelöst hat.
Aber egal die beiden 3EMs schreiben Ihr log ja nun korrekt ins 3em.log! dadurch wird das log schon ganz gut entschlackt.
Mein Problem ist es aber das dass shelly.log und events.log völlig gleich aussieht.
VG
Christian
openHAB4.2.2 im Container auf einem Docker-Swarm-Cluster
-
- Beiträge: 457
- Registriert: 6. Jan 2021 18:05
Re: Log Info eines Item in sep. Datei
Ich habe es damals nicht hinbekommen, habe es dann auch aus zeit gründen nicht mehr geschafft weiter zu verfolgen...
es wurde eine Log datei erstellt, kam aber keine Einträge rein...
Muss ich noch mal angehen das Vorhaben.
es wurde eine Log datei erstellt, kam aber keine Einträge rein...
Muss ich noch mal angehen das Vorhaben.
Gruss mad-mike
openHABian 4.2.2 auf Raspberry Pi 4 Mod. b (8GB)
openHABian 4.2.2 auf Raspberry Pi 4 Mod. b (8GB)
- udo1toni
- Beiträge: 14828
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Log Info eines Item in sep. Datei
Ähm, ja, der verlinkte Text ist tatsächlich verkehrt..., sorry, da hab ich nicht aufgepasst.nw378 hat geschrieben: ↑3. Okt 2024 16:33 Großer Meister, jetzt schmeiße ich mal den Herr-Lehrer-ich-weiß-was-Modus an, mea cupla.
In dem Beispiel
wird im ersten Beitrag des Topics beschrieben, dass mehrere Zeilen gerade nicht funktionieren.Die RegexFilter Definitionen können auch in mehreren Zeilen erfolgen, siehe Beispiel hier: https://community.openhab.org/t/unable- ... l/143343/1,
Lösung, siehe 2. Beitrag, die verschiedenen Regex-Ausdrücke durch ein | trennen.
Schreibe ich auch nur, weil ich das nämlich auch so im Einsatz habe und damals lange danach gesucht habe.
ABER: Grundsätzlich funktioniert das sehr wohl mit mehreren Zeilen, nur anders als dort dokumentiert...
Code: Alles auswählen
<!-- knx log appender -->
<RollingRandomAccessFile fileName="${sys:openhab.logdir}/knx.log" filePattern="${sys:openhab.logdir}/knx.log.%i.gz" name="KNX">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n"/>
<Filters>
<RegexFilter onMatch="ACCEPT" onMismatch="NEUTRAL" regex=".*TempIs.*"/>
<RegexFilter onMatch="ACCEPT" onMismatch="DENY" regex=".*'N.GRs.*"/>
</Filters>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="16 MB"/>
</Policies>
<DefaultRolloverStrategy max="7"/>
</RollingRandomAccessFile>
Entscheidend ist zum einen, dass man den Filterblock mit <Filters></Filters> als Block markieren muss, damit man mehrere voneinander unabhängige Filter definieren kann, zum anderen muss man je nach Filterwunsch mit onMatch und onMismatch die korrekten Filter aufbauen. Sobald ein ACCEPT gefunden wird, wird die Filterchain verlassen und die Zeile wird ausgegeben. Sobald ein DENY gefunden wird, wird die Filterchain verlassen und die Zeile wird verworfen. Wird ein NEUTRAL gefunden, so wird der nächste Filter angewandt.
log4j2 bietet noch diverse andere Filtermöglichkeiten, die man mit einem Filterblock auch miteinander kombinieren kann. Filter können auch an unterschiedlichen Stellen implementiert werden, nicht nur im Appender (um z.B. bestimmte Meldungen grundsätzlich zu unterdrücken).
openHAB4.2.2 stable in einem Debian-Container (bookworm) (Proxmox 8.2.8, LXC), mit openHABian eingerichtet