class DebugDumper(BCRelay): def __init__(self, *argz, **kwz): super(DebugDumper, self).__init__(*argz, **kwz) # Simple buffered handler that never triggers flush self.handler = BufferingHandler(capacity=self.conf.capacity) self.buffer = self.handler.buffer = deque(maxlen=self.handler.capacity) self.handler.capacity += 1 self.handler.setLevel(self.conf.level) self.handler.setFormatter( logging.Formatter(self.conf.format, self.conf.datefmt) ) logging.root.addHandler(self.handler) # Signal log-dump interface if self.conf.signal and isinstance(self.conf.signal, str): signum = getattr(signal, self.conf.signal, None) if not signum: signum = getattr(signal, 'SIG{}'.format(self.conf.signal), None) self.conf.signal = signum if self.conf.signal: def signal_handler(sig, frm): # Supress buffering of re-issued messages self.handler._emit, self.handler.emit = self.handler.emit, lambda *a, **k: None for msg in list(self.buffer): log.fatal(self.handler.format(msg)) self.handler.emit = self.handler._emit signal.signal(self.conf.signal, signal_handler) def dispatch(self, msg, source=None): if msg != self.conf.command: log.noise('Ignoring unknown command: {!r} (source: {})'.format(msg, source)) return if not self.conf.direct: source = None # reply to whatever destination channel msg = '\n'.join(it.imap(self.handler.format, list(self.buffer))) reactor.callLater( 0, self.interface.dispatch, msg, source=self, user=source, direct=True )
def create_session_logger(format="CPC"): logger = logging.getLogger("") try: logger.addHandler(HANDLER["%s-buffer" % format]) except KeyError: _formatter = logging.Formatter(format) handl = BufferingHandler(10000) handl.setFormatter(_formatter) logger.addHandler(handl) logger.setLevel(logging.INFO) return logger
def create_session_logger(log_format="CPC"): global HANDLER logger = logging.getLogger("") try: logger.addHandler(HANDLER["%s-buffer" % log_format]) except KeyError: _formatter = logging.Formatter(log_format) handl = BufferingHandler(10000) handl.setFormatter(_formatter) logger.addHandler(handl) logger.setLevel(logging.INFO) return logger
def create_logger(filename, base_dir): """ Creates a logger with a given filename. :param filename: File name for the log :return: A logger class. """ logger = logging.getLogger("") logfile_name = base_dir + filename handler = logging.FileHandler(logfile_name) base_formatter = logging.Formatter( "%(asctime)s %(name)s:%(levelname)s %(message)s") cpc = ('%(asctime)s %(name)s:%(levelname)s ' '[%(client)s,%(path)s,%(cid)s] %(message)s') handler.setFormatter(base_formatter) logger.addHandler(handler) logger.setLevel(logging.DEBUG) _formatter = logging.Formatter(cpc) fil_handler = logging.FileHandler(logfile_name) fil_handler.setFormatter(_formatter) buf_handler = BufferingHandler(10000) buf_handler.setFormatter(_formatter) return logger
def create_logger(filename): """ Creates a logger with a given filename. :param filename: File name for the log :return: A logger class. """ logger = logging.getLogger("") LOGFILE_NAME = filename hdlr = logging.FileHandler(LOGFILE_NAME) base_formatter = logging.Formatter( "%(asctime)s %(name)s:%(levelname)s %(message)s") CPC = ('%(asctime)s %(name)s:%(levelname)s ' '[%(client)s,%(path)s,%(cid)s] %(message)s') cpc_formatter = logging.Formatter(CPC) hdlr.setFormatter(base_formatter) logger.addHandler(hdlr) logger.setLevel(logging.DEBUG) _formatter = logging.Formatter(CPC) fil_handl = logging.FileHandler(LOGFILE_NAME) fil_handl.setFormatter(_formatter) buf_handl = BufferingHandler(10000) buf_handl.setFormatter(_formatter) return logger
import logging import sys from logging import Formatter from logging.handlers import BufferingHandler, RotatingFileHandler, SysLogHandler from typing import Any, Dict from freqtrade.exceptions import OperationalException logger = logging.getLogger(__name__) LOGFORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s' # Initialize bufferhandler - will be used for /log endpoints bufferHandler = BufferingHandler(1000) bufferHandler.setFormatter(Formatter(LOGFORMAT)) def _set_loggers(verbosity: int = 0, api_verbosity: str = 'info') -> None: """ Set the logging level for third party libraries :return: None """ logging.getLogger('requests').setLevel( logging.INFO if verbosity <= 1 else logging.DEBUG ) logging.getLogger("urllib3").setLevel( logging.INFO if verbosity <= 1 else logging.DEBUG ) logging.getLogger('ccxt.base.exchange').setLevel( logging.INFO if verbosity <= 2 else logging.DEBUG
base_formatter = logging.Formatter( "%(asctime)s %(name)s:%(levelname)s %(message)s") CPC = '%(asctime)s %(name)s:%(levelname)s [%(client)s,%(path)s,%(cid)s] %(message)s' cpc_formatter = logging.Formatter(CPC) hdlr.setFormatter(base_formatter) LOGGER.addHandler(hdlr) LOGGER.setLevel(logging.DEBUG) _formatter = logging.Formatter(CPC) fil_handl = logging.FileHandler(LOGFILE_NAME) fil_handl.setFormatter(_formatter) buf_handl = BufferingHandler(10000) buf_handl.setFormatter(_formatter) HANDLER = {"CPC-file": fil_handl, "CPC-buffer": buf_handl} ACTIVE_HANDLER = "BASE" URLMAP = {} NAME = "pyoic" OAS = None PASSWD = [("diana", "krall"), ("babs", "howes"), ("upper", "crust")] #noinspection PyUnusedLocal def devnull(txt): pass
"%(asctime)s %(name)s:%(levelname)s %(message)s") CPC = ('%(asctime)s %(name)s:%(levelname)s ' '[%(client)s,%(path)s,%(cid)s] %(message)s') cpc_formatter = logging.Formatter(CPC) hdlr.setFormatter(base_formatter) LOGGER.addHandler(hdlr) LOGGER.setLevel(logging.DEBUG) _formatter = logging.Formatter(CPC) fil_handl = logging.FileHandler(LOGFILE_NAME) fil_handl.setFormatter(_formatter) buf_handl = BufferingHandler(10000) buf_handl.setFormatter(_formatter) HANDLER = {"CPC-file": fil_handl, "CPC-buffer": buf_handl} ACTIVE_HANDLER = "BASE" URLMAP = {} NAME = "pyoic" OAS = None PASSWD = { "diana": "krall", "babs": "howes", "upper": "crust", "rohe0002": "StevieRay", "haho0032": "qwerty"