def test_barcode_del(self): for err1, err2, expect_state in [ (_ERR_404, "", LOCK_STATE_FREE), ("", _ERR_404, LOCK_STATE_FREE), (_ERR_404, _ERR_404, LOCK_STATE_FREE), (_ERR_404, "Something", LOCK_STATE_BATCH), ("", "Something", LOCK_STATE_FREE), ("Something", "Something", LOCK_STATE_BATCH), ]: mocker = MockDBPC() reestr = {"db_reestr_id": 1, "db_locked": LOCK_STATE_BATCH} letter = {"db_letter_id": 1, "db_locked": LOCK_STATE_BATCH, "id": 10, "db_reestr_id": 1} log = logging.getLogger("postall") hndl = BufferingHandler(10) log.addHandler(hndl) mocker.add_retval("get_reestr_info", 0, (reestr, "")) mocker.add_retval("remove_backlogs",1, [(10, err1)]) mocker.add_retval("remove_backlogs_from_shipment",1, [(10, err2)]) mocker.add_retval("modify_letter",1, (True, "")) barcode_del(mocker, mocker, reestr, letter) for func, args in mocker.logs: if func[0] == "modify_letter": if args[0]["db_locked"] != expect_state: self.fail(u"test_barcode_del: unexpected (%s, %s, %d) <> (%d)" %\ (err1, err2, expect_state, args[0]["db_locked"]))
def setUp(self): super(ServiceOutputParserTest, self).setUp() self.transport = StringTransport() self.handler = BufferingHandler(2) self.useFixture(LogHandler(self.handler)) self.parser = ServiceOutputParser() self.parser.setServiceName("my-app") self.parser.makeConnection(self.transport)
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 setUp(self): self.corba_object = Mock(spec=['method']) # Set the default result self.corba_object.method.return_value = sentinel.result self.corba_client = CorbaClient(self.corba_object, SentinelRecoder(), InternalServerError) # Mock logging self.log_handler = BufferingHandler(10) logger = logging.getLogger('pyfco.client') patcher = patch.object(logger, 'handlers', [self.log_handler]) self.addCleanup(patcher.stop) patcher.start() self.addCleanup(logger.setLevel, logger.level) logger.setLevel(logging.DEBUG)
def logger_factory(logtype='syslog', logfile=None, level='WARNING', logid='PXE', format=None): # this code has been copied from Trac (MIT modified license) logger = getLogger(logid) logtype = logtype.lower() if logtype == 'file': hdlr = FileHandler(logfile) elif logtype in ('winlog', 'eventlog', 'nteventlog'): # Requires win32 extensions hdlr = NTEventLogHandler(logid, logtype='Application') elif logtype in ('syslog', 'unix'): hdlr = SysLogHandler('/dev/log') elif logtype in ('stderr'): hdlr = StreamHandler(stderr) elif logtype in ('stdout'): hdlr = StreamHandler(stdout) else: hdlr = BufferingHandler(0) if not format: format = 'PXE[%(module)s] %(levelname)s: %(message)s' if logtype in ('file', 'stderr'): format = '%(asctime)s ' + format datefmt = '' if logtype == 'stderr': datefmt = '%X' level = level.upper() if level in ('DEBUG', 'ALL'): logger.setLevel(DEBUG) elif level == 'INFO': logger.setLevel(INFO) elif level == 'ERROR': logger.setLevel(ERROR) elif level == 'CRITICAL': logger.setLevel(CRITICAL) else: logger.setLevel(WARNING) formatter = Formatter(format, datefmt) hdlr.setFormatter(formatter) logger.addHandler(hdlr) return logger
def __init__(self, *, config=None, read_only=True, debug=True, echo=False): # Read-only for testing self.__read_only = read_only # Configuration self.__config = self._create_config([config]) # Logging logger = self.get_property(self._SECTION, 'log_path', 'logs/cryptowelder.log') formatter = Formatter( '[%(asctime)-15s][%(levelname)-5s][%(name)s] %(message)s') self.__stream_handler = StreamHandler() self.__stream_handler.setFormatter(formatter) self.__stream_handler.setLevel(DEBUG if debug else INFO) self.__rotate_handler = TimedRotatingFileHandler( logger, when=self.get_property(self._SECTION, 'log_roll', 'D'), backupCount=int(self.get_property( self._SECTION, 'log_bkup', 7))) if path.exists( path.dirname(logger)) else BufferingHandler(64) self.__rotate_handler.setFormatter(formatter) self.__rotate_handler.setLevel(DEBUG) self.__logger = self.get_logger(self) self.__logger.info('Logger : %s', logger) self.__logger.info('Config : %s', config) # Database database = self.get_property(self._SECTION, 'database', 'sqlite:///:memory:') self.__engine = create_engine(database, echo=echo) self.__session = scoped_session(sessionmaker(bind=self.__engine)) self.__logger.info('Database : %s (read_only=%s)', database, read_only) # Cache self.__nonce_lock = defaultdict(lambda: Lock()) self.__nonce_time = {}
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
def setUp(self): def set_ev(fu): def new_fu(*args, **kwargs): s = args[0] s.event.set() s.val = (args, kwargs) return fu(*args, **kwargs) return new_fu class ATestWorker(Worker): def __init__(self, name, message_queue): Worker.__init__(self, name, message_queue) self.event = Event() self.val = None self.started = False self.stopped = False @local_thread @set_ev def echo(self, val): return val @local_thread_blocking @set_ev def echo_block(self, val): return val def onStart(self): self.started = True def onStop(self): self.stopped = True @local_thread def raise_(self, ex): raise ex @local_thread_blocking def raise_blocking(self, ex): raise ex @set_ev def call_me_by_name(self, arg1, arg2): return def call_me_by_name_blocking(self, arg1, arg2): return arg1, arg2 self.buha = BufferingHandler(10000) q = Queue() self.q = q NAME = "Test" l = logging.getLogger(NAME) self.w = ATestWorker(NAME, q) self.assertEqual(self.w.log(), l) l.propagate = 0 l.addHandler(self.buha) self.assertFalse(self.w.started) self.w.start() sleep(0.05) self.assertTrue(self.w.started)
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", "rohe0002": "StevieRay",
def handler() -> Handler: return BufferingHandler(100)
def test_barcode_add(self): _DEFAULT_REESTR = {"db_reestr_id": 1, "db_locked": LOCK_STATE_FREE, "batch-name":""} _DEFAULT_LETTER = {"db_letter_id": 1, "db_locked": LOCK_STATE_FREE, "id": 0, "db_reestr_id": 1, "db_user_id": 1, "comment":"c"} _DEFAULT_CALLS = [("get_reestr_info", 0, ( {"db_reestr_id": 1, "db_locked": LOCK_STATE_FREE, "batch-name":"", "list-number-date": date(2018,9,1)}, "")), ("get_user_info", 0, ( {"fio": "", "admin": False, "db_user_id": 1}, "")), ("add_backlog", 0, (111, "")), ("modify_letter", 0, (True, "")), ("add_batch", 0, ({"batch-name":"10"}, "")), ("modify_reestr", 0, (True, "")), ("get_backlog", 0, ({"barcode": "123456789"}, "")), ] TEST_DATA = [ # BATCH (do nothing) # 1 {"reestr":{"db_reestr_id": 1, "db_locked": LOCK_STATE_BATCH}, "letter": {"db_letter_id": 1, "db_locked": LOCK_STATE_BATCH, "id": 10, "db_reestr_id": 1}, "calls": [("get_reestr_info", 0, ({"db_reestr_id": 1, "db_locked": LOCK_STATE_BATCH}, "")) ], "errlog_length": 0, "func_check": None, "log_check": None }, # NORMAL # 2 {"reestr": deepcopy(_DEFAULT_REESTR), "letter": deepcopy(_DEFAULT_LETTER), "calls": deepcopy(_DEFAULT_CALLS), "errlog_length": 0, "func_check": lambda logs: True if logs[-1][0][0]=='modify_letter' and \ logs[-1][1][0]["db_locked"]==LOCK_STATE_BATCH \ else False, "log_check": None }, # NETWORK FAIL # 3 {"reestr": deepcopy(_DEFAULT_REESTR), "letter": deepcopy(_DEFAULT_LETTER), "calls": deepcopy(_DEFAULT_CALLS)+[("add_backlog", 1, (0, "Net fail"))], "errlog_length": 0, "func_check": lambda logs: True \ if logs[-1][0][0] == 'modify_letter' and \ logs[-1][1][0]["db_last_error"].find("add_backlog")>=0 and \ logs[-1][1][0]["db_locked"] == LOCK_STATE_FREE \ else False, "log_check": None }, # 4 {"reestr": deepcopy(_DEFAULT_REESTR), "letter": deepcopy(_DEFAULT_LETTER), "calls": deepcopy(_DEFAULT_CALLS) + [ ("add_batch", 1, ({}, "Net fail"))], "errlog_length": 0, "func_check": lambda logs: True \ if logs[-1][0][0] == 'modify_letter' and \ logs[-1][1][0]["db_last_error"].find( "add_batch") >= 0 and \ logs[-1][1][0]["db_locked"] == LOCK_STATE_BACKLOG \ else False, "log_check": None }, # 5 {"reestr": deepcopy(_DEFAULT_REESTR), "letter": deepcopy(_DEFAULT_LETTER), "calls": deepcopy(_DEFAULT_CALLS) + [ ("get_backlog", 1, ({}, "Net fail"))], "errlog_length": 0, "func_check": lambda logs: True \ if logs[-1][0][0] == 'modify_letter' and \ logs[-1][1][0]["db_last_error"].find( "get_backlog") >= 0 and \ logs[-1][1][0]["db_locked"] == LOCK_STATE_BACKLOG \ else False, "log_check": None }, # DB FAIL # 6 {"reestr": deepcopy(_DEFAULT_REESTR), "letter": deepcopy(_DEFAULT_LETTER), "calls": deepcopy(_DEFAULT_CALLS) + [ ("get_user_info", 1, (False, "DB fail"))], "errlog_length": 1, "func_check": None, "log_check": lambda buffer: True \ if buffer[-1].msg.find("get_user_info") >= 0 \ else False }, # 7 {"reestr": deepcopy(_DEFAULT_REESTR), "letter": deepcopy(_DEFAULT_LETTER), "calls": deepcopy(_DEFAULT_CALLS) + [ ("modify_letter", 2, (False, "DB fail"))], "errlog_length": 1, "func_check": lambda logs: True if logs[-1][0][0]=='modify_letter' and \ logs[-1][1][0]["db_locked"]==LOCK_STATE_BATCH \ else False, "log_check": lambda buffer: True \ if buffer[-1].msg.find("modify_letter") >= 0 \ else False }, # 8 'network cable was cutted' {"reestr": deepcopy(_DEFAULT_REESTR), "letter": deepcopy(_DEFAULT_LETTER), "calls": deepcopy(_DEFAULT_CALLS) + [ ("get_backlog", 1, ({}, "Net fail")), ("modify_letter", 2, (False, "DB fail"))], "errlog_length": 1, "func_check": lambda logs: True if logs[-1][0][0] == 'modify_letter' and \ logs[-1][1][0][ "db_locked"] == LOCK_STATE_BACKLOG \ else False, "log_check": lambda buffer: True \ if buffer[-1].msg.find("modify_letter") >= 0 \ else False }, ] test_number = 0 fail_count = 0 for td in TEST_DATA: test_number += 1 mocker = MockDBPC() reestr = td["reestr"] letter = td["letter"] log = logging.getLogger("postall") hndl = BufferingHandler(10) log.addHandler(hndl) for func_name, ncall, result in td["calls"]: mocker.add_retval(func_name, ncall, result) barcode_add(mocker, mocker, reestr, letter) if len(hndl.buffer) != td["errlog_length"]: fail_count += 1 print("---------------test_number=%d---------------" % (test_number,)) print(u"test_barcode_add: unexpected errlog length (%d <> %d)" % \ (len(hndl.buffer), td["errlog_length"])) for i in hndl.buffer: print(i) if td["log_check"] != None and not td["log_check"](hndl.buffer): fail_count += 1 print("---------------test_number=%d---------------" % ( test_number,)) print("logger records:") for i in hndl.buffer: print(i) lines = inspect.getsourcelines(td["log_check"]) print(u"test_barcode_add: failed log check:\n%s" % (''.join(lines[0]),)) if td["func_check"] != None and not td["func_check"](mocker.logs): fail_count += 1 print("---------------test_number=%d---------------" % (test_number,)) print("logs:") for func, args in mocker.logs: print((func, args)) lines = inspect.getsourcelines(td["func_check"]) print(u"test_barcode_add: failed check:\n%s" % (''.join(lines[0]),)) log.removeHandler(hndl) if fail_count > 0: self.fail("test failed, check output")
from os.path import dirname, realpath from logging.handlers import BufferingHandler from loguru import logger __path__ = dirname(realpath(__file__)) mem_handler = BufferingHandler(capacity=15000) logger.add(mem_handler, colorize=True, level='INFO', enqueue=False)
from beproud.django.mailer.models import init_mailer from beproud.django.mailer.backends.base import BaseEmailBackend from beproud.django.mailer.signals import mail_pre_send, mail_post_send from beproud.django.mailer import ( EmailMessage, EmailMultiAlternatives, send_mail, send_template_mail, mail_managers, mail_admins, mail_managers_template, send_mass_mail, ) # Suppress logging logging.getLogger("").handlers = [BufferingHandler(0)] __all__ = ( 'EncodingTestCaseUTF8', 'EncodingTestCaseISO2022JP', 'EmailAllForwardTestCase', 'EmailAllForwardTestCase2', 'TemplateTestCase', 'TemplateContextTestCase', 'DjangoMailISO2022JPTestCase', 'DjangoMailUTF8TestCase', 'SignalTest', 'MassMailTest', 'UTCTimeTestCase', 'LocalTimeTestCase', 'FailSilentlyTestCase',