Log cherrypy errors

This commit is contained in:
JonnyWong16 2020-10-07 00:06:23 -07:00
parent b7c2e42190
commit f7766fff14
No known key found for this signature in database
GPG key ID: B1F1F9807184697A

View file

@ -21,6 +21,7 @@ from future.builtins import str
from logutils.queue import QueueHandler, QueueListener from logutils.queue import QueueHandler, QueueListener
from logging import handlers from logging import handlers
import cherrypy
import contextlib import contextlib
import errno import errno
import logging import logging
@ -78,6 +79,8 @@ class NoThreadFilter(logging.Filter):
Log filter for the current thread Log filter for the current thread
""" """
def __init__(self, threadName): def __init__(self, threadName):
super(NoThreadFilter, self).__init__()
self.threadName = threadName self.threadName = threadName
def filter(self, record): def filter(self, record):
@ -263,7 +266,11 @@ def initLogger(console=False, log_dir=False, verbose=False):
# Close and remove old handlers. This is required to reinit the loggers # Close and remove old handlers. This is required to reinit the loggers
# at runtime # at runtime
for handler in logger.handlers[:] + logger_api.handlers[:] + logger_plex_websocket.handlers[:]: log_handlers = logger.handlers[:] + \
logger_api.handlers[:] + \
logger_plex_websocket.handlers[:] + \
cherrypy.log.error_log.handlers[:]
for handler in log_handlers:
# Just make sure it is cleaned up. # Just make sure it is cleaned up.
if isinstance(handler, handlers.RotatingFileHandler): if isinstance(handler, handlers.RotatingFileHandler):
handler.close() handler.close()
@ -273,6 +280,7 @@ def initLogger(console=False, log_dir=False, verbose=False):
logger.removeHandler(handler) logger.removeHandler(handler)
logger_api.removeHandler(handler) logger_api.removeHandler(handler)
logger_plex_websocket.removeHandler(handler) logger_plex_websocket.removeHandler(handler)
cherrypy.log.error_log.removeHandler(handler)
# Configure the logger to accept all messages # Configure the logger to accept all messages
logger.propagate = False logger.propagate = False
@ -281,6 +289,7 @@ def initLogger(console=False, log_dir=False, verbose=False):
logger_api.setLevel(logging.DEBUG if verbose else logging.INFO) logger_api.setLevel(logging.DEBUG if verbose else logging.INFO)
logger_plex_websocket.propagate = False logger_plex_websocket.propagate = False
logger_plex_websocket.setLevel(logging.DEBUG if verbose else logging.INFO) logger_plex_websocket.setLevel(logging.DEBUG if verbose else logging.INFO)
cherrypy.log.error_log.propagate = False
# Setup file logger # Setup file logger
if log_dir: if log_dir:
@ -293,6 +302,7 @@ def initLogger(console=False, log_dir=False, verbose=False):
file_handler.setFormatter(file_formatter) file_handler.setFormatter(file_formatter)
logger.addHandler(file_handler) logger.addHandler(file_handler)
cherrypy.log.error_log.addHandler(file_handler)
# Tautulli API logger # Tautulli API logger
filename = os.path.join(log_dir, FILENAME_API) filename = os.path.join(log_dir, FILENAME_API)
@ -318,12 +328,17 @@ def initLogger(console=False, log_dir=False, verbose=False):
console_handler.setLevel(logging.DEBUG) console_handler.setLevel(logging.DEBUG)
logger.addHandler(console_handler) logger.addHandler(console_handler)
cherrypy.log.error_log.addHandler(console_handler)
# Add filters to log handlers # Add filters to log handlers
# Only add filters after the config file has been initialized # Only add filters after the config file has been initialized
# Nothing prior to initialization should contain sensitive information # Nothing prior to initialization should contain sensitive information
if not plexpy.DEV and plexpy.CONFIG: if not plexpy.DEV and plexpy.CONFIG:
for handler in logger.handlers + logger_api.handlers + logger_plex_websocket.handlers: log_handlers = logger.handlers + \
logger_api.handlers + \
logger_plex_websocket.handlers + \
cherrypy.log.error_log.handlers
for handler in log_handlers:
handler.addFilter(BlacklistFilter()) handler.addFilter(BlacklistFilter())
handler.addFilter(PublicIPFilter()) handler.addFilter(PublicIPFilter())
handler.addFilter(EmailFilter()) handler.addFilter(EmailFilter())