ruff format: loggers

This commit is contained in:
Matthias 2024-05-12 16:30:42 +02:00
parent 9303ae29d3
commit f8f9ac38b2
4 changed files with 35 additions and 35 deletions

View File

@ -10,7 +10,7 @@ from freqtrade.loggers.std_err_stream_handler import FTStdErrStreamHandler
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
LOGFORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' LOGFORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
# Initialize bufferhandler - will be used for /log endpoints # Initialize bufferhandler - will be used for /log endpoints
bufferHandler = FTBufferingHandler(1000) bufferHandler = FTBufferingHandler(1000)
@ -33,9 +33,7 @@ def setup_logging_pre() -> None:
ones the user desires beforehand. ones the user desires beforehand.
""" """
logging.basicConfig( logging.basicConfig(
level=logging.INFO, level=logging.INFO, format=LOGFORMAT, handlers=[FTStdErrStreamHandler(), bufferHandler]
format=LOGFORMAT,
handlers=[FTStdErrStreamHandler(), bufferHandler]
) )
@ -44,20 +42,20 @@ def setup_logging(config: Config) -> None:
Process -v/--verbose, --logfile options Process -v/--verbose, --logfile options
""" """
# Log level # Log level
verbosity = config['verbosity'] verbosity = config["verbosity"]
logging.root.addHandler(bufferHandler) logging.root.addHandler(bufferHandler)
logfile = config.get('logfile') logfile = config.get("logfile")
if logfile: if logfile:
s = logfile.split(':') s = logfile.split(":")
if s[0] == 'syslog': if s[0] == "syslog":
# Address can be either a string (socket filename) for Unix domain socket or # Address can be either a string (socket filename) for Unix domain socket or
# a tuple (hostname, port) for UDP socket. # a tuple (hostname, port) for UDP socket.
# Address can be omitted (i.e. simple 'syslog' used as the value of # Address can be omitted (i.e. simple 'syslog' used as the value of
# config['logfilename']), which defaults to '/dev/log', applicable for most # config['logfilename']), which defaults to '/dev/log', applicable for most
# of the systems. # of the systems.
address = (s[1], int(s[2])) if len(s) > 2 else s[1] if len(s) > 1 else '/dev/log' address = (s[1], int(s[2])) if len(s) > 2 else s[1] if len(s) > 1 else "/dev/log"
handler_sl = get_existing_handlers(SysLogHandler) handler_sl = get_existing_handlers(SysLogHandler)
if handler_sl: if handler_sl:
logging.root.removeHandler(handler_sl) logging.root.removeHandler(handler_sl)
@ -65,14 +63,16 @@ def setup_logging(config: Config) -> None:
# No datetime field for logging into syslog, to allow syslog # No datetime field for logging into syslog, to allow syslog
# to perform reduction of repeating messages if this is set in the # to perform reduction of repeating messages if this is set in the
# syslog config. The messages should be equal for this. # syslog config. The messages should be equal for this.
handler_sl.setFormatter(Formatter('%(name)s - %(levelname)s - %(message)s')) handler_sl.setFormatter(Formatter("%(name)s - %(levelname)s - %(message)s"))
logging.root.addHandler(handler_sl) logging.root.addHandler(handler_sl)
elif s[0] == 'journald': # pragma: no cover elif s[0] == "journald": # pragma: no cover
try: try:
from cysystemd.journal import JournaldLogHandler from cysystemd.journal import JournaldLogHandler
except ImportError: except ImportError:
raise OperationalException("You need the cysystemd python package be installed in " raise OperationalException(
"order to use logging to journald.") "You need the cysystemd python package be installed in "
"order to use logging to journald."
)
handler_jd = get_existing_handlers(JournaldLogHandler) handler_jd = get_existing_handlers(JournaldLogHandler)
if handler_jd: if handler_jd:
logging.root.removeHandler(handler_jd) logging.root.removeHandler(handler_jd)
@ -80,19 +80,21 @@ def setup_logging(config: Config) -> None:
# No datetime field for logging into journald, to allow syslog # No datetime field for logging into journald, to allow syslog
# to perform reduction of repeating messages if this is set in the # to perform reduction of repeating messages if this is set in the
# syslog config. The messages should be equal for this. # syslog config. The messages should be equal for this.
handler_jd.setFormatter(Formatter('%(name)s - %(levelname)s - %(message)s')) handler_jd.setFormatter(Formatter("%(name)s - %(levelname)s - %(message)s"))
logging.root.addHandler(handler_jd) logging.root.addHandler(handler_jd)
else: else:
handler_rf = get_existing_handlers(RotatingFileHandler) handler_rf = get_existing_handlers(RotatingFileHandler)
if handler_rf: if handler_rf:
logging.root.removeHandler(handler_rf) logging.root.removeHandler(handler_rf)
handler_rf = RotatingFileHandler(logfile, handler_rf = RotatingFileHandler(
maxBytes=1024 * 1024 * 10, # 10Mb logfile,
backupCount=10) maxBytes=1024 * 1024 * 10, # 10Mb
backupCount=10,
)
handler_rf.setFormatter(Formatter(LOGFORMAT)) handler_rf.setFormatter(Formatter(LOGFORMAT))
logging.root.addHandler(handler_rf) logging.root.addHandler(handler_rf)
logging.root.setLevel(logging.INFO if verbosity < 1 else logging.DEBUG) logging.root.setLevel(logging.INFO if verbosity < 1 else logging.DEBUG)
set_loggers(verbosity, config.get('api_server', {}).get('verbosity', 'info')) set_loggers(verbosity, config.get("api_server", {}).get("verbosity", "info"))
logger.info('Verbosity set to %s', verbosity) logger.info("Verbosity set to %s", verbosity)

View File

@ -10,6 +10,7 @@ class FTBufferingHandler(BufferingHandler):
self.acquire() self.acquire()
try: try:
# Keep half of the records in buffer. # Keep half of the records in buffer.
self.buffer = self.buffer[-int(self.capacity / 2):] records_to_keep = -int(self.capacity / 2)
self.buffer = self.buffer[records_to_keep:]
finally: finally:
self.release() self.release()

View File

@ -1,35 +1,32 @@
import logging import logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
def set_loggers(verbosity: int = 0, api_verbosity: str = 'info') -> None: def set_loggers(verbosity: int = 0, api_verbosity: str = "info") -> None:
""" """
Set the logging level for third party libraries Set the logging level for third party libraries
:param verbosity: Verbosity level. amount of `-v` passed to the command line :param verbosity: Verbosity level. amount of `-v` passed to the command line
:return: None :return: None
""" """
for logger_name in ('requests', 'urllib3', 'httpcore'): for logger_name in ("requests", "urllib3", "httpcore"):
logging.getLogger(logger_name).setLevel( logging.getLogger(logger_name).setLevel(logging.INFO if verbosity <= 1 else logging.DEBUG)
logging.INFO if verbosity <= 1 else logging.DEBUG logging.getLogger("ccxt.base.exchange").setLevel(
)
logging.getLogger('ccxt.base.exchange').setLevel(
logging.INFO if verbosity <= 2 else logging.DEBUG logging.INFO if verbosity <= 2 else logging.DEBUG
) )
logging.getLogger('telegram').setLevel(logging.INFO) logging.getLogger("telegram").setLevel(logging.INFO)
logging.getLogger('httpx').setLevel(logging.WARNING) logging.getLogger("httpx").setLevel(logging.WARNING)
logging.getLogger('werkzeug').setLevel( logging.getLogger("werkzeug").setLevel(
logging.ERROR if api_verbosity == 'error' else logging.INFO logging.ERROR if api_verbosity == "error" else logging.INFO
) )
__BIAS_TESTER_LOGGERS = [ __BIAS_TESTER_LOGGERS = [
'freqtrade.resolvers', "freqtrade.resolvers",
'freqtrade.strategy.hyper', "freqtrade.strategy.hyper",
'freqtrade.configuration.config_validation', "freqtrade.configuration.config_validation",
] ]

View File

@ -18,7 +18,7 @@ class FTStdErrStreamHandler(Handler):
try: try:
msg = self.format(record) msg = self.format(record)
# Don't keep a reference to stderr - this can be problematic with progressbars. # Don't keep a reference to stderr - this can be problematic with progressbars.
sys.stderr.write(msg + '\n') sys.stderr.write(msg + "\n")
self.flush() self.flush()
except RecursionError: except RecursionError:
raise raise