Jak prawidłowo filtrować logi systemowe?

Jak prawidłowo skonfigurować logger systemowy aby nie zapisywać ostrzeżeń dla jednej z integracji.
Niedziałanie tych urządzeń jest zupełnie prawidłowe i niepotrzebnie puchnie home-assistant.log.
Wiem, że trzeba zdefiniować odpowiedni filtr tylko nie wiem jak. Czy można w jakiś sposób ograniczyć rozmiar tego pliku.

2022-07-19 13:31:38 WARNING (MainThread) [custom_components.linkplay.media_player] Failed async communicating with LinkPlayDevice (httpapi) 'Sound Altanka': <class 'aiohttp.client_exceptions.ClientConnectorError'>
2022-07-19 13:31:39 WARNING (MainThread) [custom_components.linkplay.media_player] Failed async communicating with LinkPlayDevice (httpapi) 'Sound Kuchnia': <class 'aiohttp.client_exceptions.ClientConnectorError'>
2022-07-19 13:31:39 WARNING (MainThread) [custom_components.linkplay.media_player] Failed async communicating with LinkPlayDevice (httpapi) 'Sound Salon': <class 'aiohttp.client_exceptions.ClientConnectorError'>
2022-07-19 13:32:02 WARNING (MainThread) [homeassistant.components.media_player] Updating linkplay media_player took longer than the scheduled update interval 0:00:03
2022-07-19 13:32:02 WARNING (MainThread) [custom_components.linkplay.media_player] Failed async communicating with LinkPlayDevice (httpapi) 'Sound Salon': <class 'aiohttp.client_exceptions.ClientConnectorError'>
2022-07-19 13:32:02 WARNING (MainThread) [custom_components.linkplay.media_player] Failed async communicating with LinkPlayDevice (httpapi) 'Sound Kuchnia': <class 'aiohttp.client_exceptions.ClientConnectorError'>
2022-07-19 13:32:02 WARNING (MainThread) [custom_components.linkplay.media_player] Failed async communicating with LinkPlayDevice (httpapi) 'Sound Altanka': <class 'aiohttp.client_exceptions.ClientConnectorError'>
2022-07-19 13:32:23 WARNING (MainThread) [homeassistant.components.media_player] Updating linkplay media_player took longer than the scheduled update interval 0:00:03

Spróbuj tak (generalnie defaultowy poziom poniosłem tu z warning do error, a dla tego komponentu aż na fatal):

logger:
  default: error
  logs:
    custom_components.linkplay: fatal

Byłem tam - jest tam taki przykład

# Example configuration.yaml entry
logger:
  default: info
  logs:
    custom_components.my_integration: critical
  filters:
    custom_component.my_integration:
      - "HTTP 429" # Filter all HTTP 429 errors
      - "Request to .*unreliable.com.* Timed Out"
    homeassistant.components.nws:
      - "^Error handling request$"

… mógłbyś krótko napisać o co chodzi z tym filters, jakie jest jego zastosowanie?

Przecież jest to doskonała dokumentacja, opcja filters umożliwia pozbycie się z logów czegoś co spełni warunki dowolnie zdefiniowanego wyrażenia regularnego, nigdy jej nie używałem.
Mi wystarcza podniesienie defaultu na błędy (jakkolwiek standardowy warning nie jest zły, bo można z logów wtedy wyczytać ostrzeżenia o breaking changes przed aktualizacjami) , a wybranych komponentów w/g potrzeb (tam gdzie potrzebuję wiedzieć naprawdę więcej daję debug, a gdybym nie chciał widzieć zwykłych błędów dałbym właśnie fatal, bo błędów krytycznych raczej wypada nie odfiltrowywać :stuck_out_tongue: ).

Nie wątpię, zmyłką są te znaczki $^* nie wiedziałem czy to jest jakaś maska - czyli ma pasować co do znaczka do tego co w cudzysłowie?
Zasadniczo problem rozwiązany - Dzięki.

Ta ściąga jest chyba niezła (odnośnie gwiazdek czy dolarów :P)

1 Like