Files
scrypted/plugins/arlo/src/arlo_plugin/logging.py
Brett Jia 25661add94 Arlo 0.1.3 (#211)
* more reliable internal event queue management

* timeout at higher level

* motion detection

* better motion event logic, add Battery

* bump version

* remove debug prints for publish

* configurable logging

* bump version

* document verbosity settings

* bump version properly

* wait for arlo stream to start before returning rtsps url

* bump

* clean up accidental imports

* implement Online, Refresh + clean up duplicate logging issue

* bump
2022-04-03 12:47:38 -07:00

40 lines
1.0 KiB
Python

import logging
class ScryptedDeviceLoggingWrapper(logging.Handler):
scrypted_device = None
def __init__(self, scrypted_device):
super().__init__()
self.scrypted_device = scrypted_device
def emit(self, record):
self.scrypted_device.print(self.format(record))
def createScryptedLogger(scrypted_device, name):
logger = logging.getLogger(name)
if logger.hasHandlers():
return logger
logger.setLevel(logging.INFO)
# configure logger to output to scrypted's log stream
sh = ScryptedDeviceLoggingWrapper(scrypted_device)
# log formatting
fmt = logging.Formatter("%(asctime)s %(name)s %(levelname)s: %(message)s")
sh.setFormatter(fmt)
# configure handler to logger
logger.addHandler(sh)
return logger
class ScryptedDeviceLoggerMixin:
_logger = None
logger_name = None
@property
def logger(self):
if self._logger is None:
self._logger = createScryptedLogger(self, self.logger_name)
return self._logger