Redact user:pass from ffmpeg logs

This commit is contained in:
Nick Mowen 2022-10-09 12:06:58 -06:00
parent bb8dc2d09c
commit 31a9d705b4

View File

@ -1,5 +1,6 @@
# adapted from https://medium.com/@jonathonbao/python3-logging-with-multiprocessing-f51f460b8778
import logging
import re
import threading
import os
import signal
@ -10,6 +11,8 @@ from setproctitle import setproctitle
from typing import Deque
from collections import deque
from frigate.const import REGEX_CAMERA_USER_PASS
def listener_configurer() -> None:
root = logging.getLogger()
@ -55,6 +58,11 @@ class LogPipe(threading.Thread):
self.pipeReader = os.fdopen(self.fdRead)
self.start()
def cleanup_log(self, log: str) -> str:
"""Cleanup the log line to remove sensitive info and string tokens."""
log = re.sub(REGEX_CAMERA_USER_PASS, "*:*@", log).strip("\n")
return log
def fileno(self) -> int:
"""Return the write file descriptor of the pipe"""
return self.fdWrite
@ -62,7 +70,7 @@ class LogPipe(threading.Thread):
def run(self) -> None:
"""Run the thread, logging everything."""
for line in iter(self.pipeReader.readline, ""):
self.deque.append(line.strip("\n"))
self.deque.append(self.cleanup_log(line))
self.pipeReader.close()