mirror of
https://github.com/koush/scrypted.git
synced 2026-04-15 12:50:26 +01:00
* 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
40 lines
1.0 KiB
Python
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 |