|
|
@ -7,6 +7,8 @@ from logging.handlers import TimedRotatingFileHandler
|
|
|
|
from get_argv import config_dir
|
|
|
|
from get_argv import config_dir
|
|
|
|
from get_settings import get_general_settings
|
|
|
|
from get_settings import get_general_settings
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
logger = logging.getLogger()
|
|
|
|
|
|
|
|
|
|
|
|
debug = get_general_settings()[4]
|
|
|
|
debug = get_general_settings()[4]
|
|
|
|
if debug is False:
|
|
|
|
if debug is False:
|
|
|
|
log_level = "INFO"
|
|
|
|
log_level = "INFO"
|
|
|
@ -38,9 +40,21 @@ class NoExceptionFormatter(logging.Formatter):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def configure_logging():
|
|
|
|
def configure_logging():
|
|
|
|
log = logging.getLogger()
|
|
|
|
logger.handlers = []
|
|
|
|
log.handlers = []
|
|
|
|
|
|
|
|
|
|
|
|
logger.setLevel(log_level)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Console logging
|
|
|
|
|
|
|
|
ch = logging.StreamHandler()
|
|
|
|
|
|
|
|
cf = NoExceptionFormatter('%(asctime)-15s - %(name)-32s (%(thread)x) : %(levelname)s (%(module)s:%(lineno)d) '
|
|
|
|
|
|
|
|
'- %(message)s')
|
|
|
|
|
|
|
|
ch.setFormatter(cf)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ch.setLevel(log_level)
|
|
|
|
|
|
|
|
# ch.addFilter(MyFilter())
|
|
|
|
|
|
|
|
logger.addHandler(ch)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#File Logging
|
|
|
|
global fh
|
|
|
|
global fh
|
|
|
|
fh = TimedRotatingFileHandler(os.path.join(config_dir, 'log/bazarr.log'), when="midnight", interval=1,
|
|
|
|
fh = TimedRotatingFileHandler(os.path.join(config_dir, 'log/bazarr.log'), when="midnight", interval=1,
|
|
|
|
backupCount=7)
|
|
|
|
backupCount=7)
|
|
|
@ -48,6 +62,7 @@ def configure_logging():
|
|
|
|
'%d/%m/%Y %H:%M:%S')
|
|
|
|
'%d/%m/%Y %H:%M:%S')
|
|
|
|
fh.setFormatter(f)
|
|
|
|
fh.setFormatter(f)
|
|
|
|
fh.addFilter(BlacklistFilter())
|
|
|
|
fh.addFilter(BlacklistFilter())
|
|
|
|
|
|
|
|
fh.addFilter(PublicIPFilter())
|
|
|
|
|
|
|
|
|
|
|
|
if debug is True:
|
|
|
|
if debug is True:
|
|
|
|
logging.getLogger("apscheduler").setLevel(logging.DEBUG)
|
|
|
|
logging.getLogger("apscheduler").setLevel(logging.DEBUG)
|
|
|
@ -62,23 +77,18 @@ def configure_logging():
|
|
|
|
logging.getLogger("guessit").setLevel(logging.WARNING)
|
|
|
|
logging.getLogger("guessit").setLevel(logging.WARNING)
|
|
|
|
logging.getLogger("rebulk").setLevel(logging.WARNING)
|
|
|
|
logging.getLogger("rebulk").setLevel(logging.WARNING)
|
|
|
|
logging.getLogger("stevedore.extension").setLevel(logging.CRITICAL)
|
|
|
|
logging.getLogger("stevedore.extension").setLevel(logging.CRITICAL)
|
|
|
|
log.setLevel(log_level)
|
|
|
|
fh.setLevel(log_level)
|
|
|
|
log.addHandler(fh)
|
|
|
|
logger.addHandler(fh)
|
|
|
|
|
|
|
|
|
|
|
|
# Console logging
|
|
|
|
|
|
|
|
ch = logging.StreamHandler()
|
|
|
|
|
|
|
|
cf = NoExceptionFormatter('%(asctime)s - %(levelname)s :: %(message)s',
|
|
|
|
|
|
|
|
'%Y-%m-%d %H:%M:%S')
|
|
|
|
|
|
|
|
ch.setFormatter(cf)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
logging.getLogger("apscheduler").setLevel(logging.WARNING)
|
|
|
|
class MyFilter(logging.Filter):
|
|
|
|
logging.getLogger("subliminal").setLevel(logging.CRITICAL)
|
|
|
|
def __init__(self):
|
|
|
|
logging.getLogger("enzyme").setLevel(logging.CRITICAL)
|
|
|
|
pass
|
|
|
|
logging.getLogger("guessit").setLevel(logging.WARNING)
|
|
|
|
|
|
|
|
logging.getLogger("rebulk").setLevel(logging.WARNING)
|
|
|
|
def filter(self, record):
|
|
|
|
logging.getLogger("stevedore.extension").setLevel(logging.CRITICAL)
|
|
|
|
if record.name != 'root':
|
|
|
|
ch.setLevel(logging.INFO)
|
|
|
|
return False
|
|
|
|
log.addHandler(ch)
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class BlacklistFilter(logging.Filter):
|
|
|
|
class BlacklistFilter(logging.Filter):
|
|
|
@ -106,6 +116,43 @@ class BlacklistFilter(logging.Filter):
|
|
|
|
return True
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PublicIPFilter(logging.Filter):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
Log filter for public IP addresses
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def filter(self, record):
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
# Currently only checking for ipv4 addresses
|
|
|
|
|
|
|
|
ipv4 = re.findall(r'[0-9]+(?:\.[0-9]+){3}(?!\d*-[a-z0-9]{6})', record.msg)
|
|
|
|
|
|
|
|
for ip in ipv4:
|
|
|
|
|
|
|
|
record.msg = record.msg.replace(ip, ip.partition('.')[0] + '.***.***.***')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
args = []
|
|
|
|
|
|
|
|
for arg in record.args:
|
|
|
|
|
|
|
|
ipv4 = re.findall(r'[0-9]+(?:\.[0-9]+){3}(?!\d*-[a-z0-9]{6})', arg) if isinstance(arg, basestring) else []
|
|
|
|
|
|
|
|
for ip in ipv4:
|
|
|
|
|
|
|
|
arg = arg.replace(ip, ip.partition('.')[0] + '.***.***.***')
|
|
|
|
|
|
|
|
args.append(arg)
|
|
|
|
|
|
|
|
record.args = tuple(args)
|
|
|
|
|
|
|
|
except:
|
|
|
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def empty_log():
|
|
|
|
def empty_log():
|
|
|
|
fh.doRollover()
|
|
|
|
fh.doRollover()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def update_settings(debug):
|
|
|
|
|
|
|
|
if debug == 'False':
|
|
|
|
|
|
|
|
level = "INFO"
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
level = "DEBUG"
|
|
|
|
|
|
|
|
print debug, level
|
|
|
|
|
|
|
|
logging.getLogger().setLevel(level)
|
|
|
|
|
|
|
|
for handler in logging.getLogger().handlers:
|
|
|
|
|
|
|
|
handler.setLevel(level)
|
|
|
|