mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-31 12:00:08 -07:00
Log cherrypy errors
This commit is contained in:
parent
b7c2e42190
commit
f7766fff14
1 changed files with 17 additions and 2 deletions
|
@ -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())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue