def script_logging_context(syslog=_has_syslog_handler, syslog_facility=logbook.SyslogHandler.LOG_LOCAL1, syslog_buffer_size=1024, syslog_message_size=32768, syslog_address=("127.0.0.1", 514), syslog_level=logbook.DEBUG, logfile=True, logfile_path="logfile", logfile_mode='a', logfile_encoding='utf-8', logfile_level=logbook.DEBUG, logfile_delay=False, logfile_max_size=1024 * 1024, logfile_backup_count=32, stderr=True, stderr_level=logbook.INFO): """ Context manager that creates a setup of logbook handlers based on the parameters received and sensible defaults. """ from logbook.concurrency import enable_gevent enable_gevent() redirect_python_logging_to_logbook() processor = create_processor() flags = logbook.Flags(errors='silent') handlers = [logbook.NullHandler()] if syslog: handlers.append(create_syslog_handler(facility=syslog_facility, buffer_size=syslog_buffer_size, message_size=syslog_message_size, address=syslog_address, level=syslog_level)) if logfile: handlers.append(create_rotating_file_handler(path=logfile_path, mode=logfile_mode, encoding=logfile_encoding, level=logfile_level, delay=logfile_delay, max_size=logfile_max_size, backup_count=logfile_backup_count)) if stderr: handlers.append(create_stderr_handler(level=stderr_level)) with logbook.NestedSetup([processor, flags] + handlers).applicationbound(): yield
def test_disable_introspection(self): with logbook.Flags(introspection=False): with logbook.TestHandler() as h: self.log.warn('Testing') self.assert_(h.records[0].frame is None) self.assert_(h.records[0].calling_frame is None) self.assert_(h.records[0].module is None)
def test_disable_introspection(logger): with logbook.Flags(introspection=False): with logbook.TestHandler() as h: logger.warn('Testing') assert h.records[0].frame is None assert h.records[0].calling_frame is None assert h.records[0].module is None
def test_error_flag(logger): with capturing_stderr_context() as captured: with logbook.Flags(errors='print'): with logbook.Flags(errors='silent'): logger.warn('Foo {42}', 'aha') assert captured.getvalue() == '' with logbook.Flags(errors='silent'): with logbook.Flags(errors='print'): logger.warn('Foo {42}', 'aha') assert captured.getvalue() != '' with pytest.raises(Exception) as caught: with logbook.Flags(errors='raise'): logger.warn('Foo {42}', 'aha') assert 'Could not format message with provided arguments' in str( caught.value)
def test_error_flag(self): with capture_stderr() as captured: with logbook.Flags(errors='print'): with logbook.Flags(errors='silent'): self.log.warn('Foo {42}', 'aha') self.assertEqual(captured.getvalue(), '') with logbook.Flags(errors='silent'): with logbook.Flags(errors='print'): self.log.warn('Foo {42}', 'aha') self.assertNotEqual(captured.getvalue(), '') try: with logbook.Flags(errors='raise'): self.log.warn('Foo {42}', 'aha') except Exception, e: self.assert_('Could not format message with provided ' 'arguments' in str(e)) else:
def setup_logging(): logbook.StderrHandler().push_application() logbook.Flags(errors='raise').push_application()