from . import events
from . import futures
from . import tasks
-from .log import asyncio_log
+from .log import logger
__all__ = ['BaseEventLoop', 'Server']
level = logging.INFO
else:
level = logging.DEBUG
- asyncio_log.log(level, 'poll%s took %.3f seconds', argstr, t1-t0)
+ logger.log(level, 'poll%s took %.3f seconds', argstr, t1-t0)
self._process_events(event_list)
# Handle 'later' callbacks that are ready.
import threading
import socket
-from .log import asyncio_log
+from .log import logger
class Handle:
try:
self._callback(*self._args)
except Exception:
- asyncio_log.exception('Exception in callback %s %r',
- self._callback, self._args)
+ logger.exception('Exception in callback %s %r',
+ self._callback, self._args)
self = None # Needed to break cycles when an exception occurs.
import traceback
from . import events
-from .log import asyncio_log
+from .log import logger
# States for Future.
_PENDING = 'PENDING'
def __del__(self):
if self.tb:
- asyncio_log.error('Future/Task exception was never retrieved:\n%s',
- ''.join(self.tb))
+ logger.error('Future/Task exception was never retrieved:\n%s',
+ ''.join(self.tb))
class Future:
import logging
-asyncio_log = logging.getLogger("asyncio")
+# Name the logger after the package.
+logger = logging.getLogger(__package__)
from . import constants
from . import futures
from . import transports
-from .log import asyncio_log
+from .log import logger
class _ProactorBasePipeTransport(transports.BaseTransport):
self._read_fut.cancel()
def _fatal_error(self, exc):
- asyncio_log.exception('Fatal error for %s', self)
+ logger.exception('Fatal error for %s', self)
self._force_close(exc)
def _force_close(self, exc):
if self._conn_lost:
if self._conn_lost >= constants.LOG_THRESHOLD_FOR_CONNLOST_WRITES:
- asyncio_log.warning('socket.send() raised exception.')
+ logger.warning('socket.send() raised exception.')
self._conn_lost += 1
return
self._buffer.append(data)
def __init__(self, proactor):
super().__init__()
- asyncio_log.debug('Using proactor: %s', proactor.__class__.__name__)
+ logger.debug('Using proactor: %s', proactor.__class__.__name__)
self._proactor = proactor
self._selector = proactor # convenient alias
proactor.set_loop(self)
f = self._proactor.accept(sock)
except OSError:
if sock.fileno() != -1:
- asyncio_log.exception('Accept failed')
+ logger.exception('Accept failed')
sock.close()
except futures.CancelledError:
sock.close()
from . import futures
from . import selectors
from . import transports
-from .log import asyncio_log
+from .log import logger
class BaseSelectorEventLoop(base_events.BaseEventLoop):
if selector is None:
selector = selectors.DefaultSelector()
- asyncio_log.debug('Using selector: %s', selector.__class__.__name__)
+ logger.debug('Using selector: %s', selector.__class__.__name__)
self._selector = selector
self._make_self_pipe()
sock.close()
# There's nowhere to send the error, so just log it.
# TODO: Someone will want an error handler for this.
- asyncio_log.exception('Accept failed')
+ logger.exception('Accept failed')
else:
if ssl:
self._make_ssl_transport(
def _fatal_error(self, exc):
# should be called from exception handler only
- asyncio_log.exception('Fatal error for %s', self)
+ logger.exception('Fatal error for %s', self)
self._force_close(exc)
def _force_close(self, exc):
if self._conn_lost:
if self._conn_lost >= constants.LOG_THRESHOLD_FOR_CONNLOST_WRITES:
- asyncio_log.warning('socket.send() raised exception.')
+ logger.warning('socket.send() raised exception.')
self._conn_lost += 1
return
if self._conn_lost:
if self._conn_lost >= constants.LOG_THRESHOLD_FOR_CONNLOST_WRITES:
- asyncio_log.warning('socket.send() raised exception.')
+ logger.warning('socket.send() raised exception.')
self._conn_lost += 1
return
if self._conn_lost and self._address:
if self._conn_lost >= constants.LOG_THRESHOLD_FOR_CONNLOST_WRITES:
- asyncio_log.warning('socket.send() raised exception.')
+ logger.warning('socket.send() raised exception.')
self._conn_lost += 1
return
from . import events
from . import futures
-from .log import asyncio_log
+from .log import logger
# If you set _DEBUG to true, @coroutine will wrap the resulting
# generator objects in a CoroWrapper instance (defined below). That
code = func.__code__
filename = code.co_filename
lineno = code.co_firstlineno
- asyncio_log.error('Coroutine %r defined at %s:%s was never yielded from',
- func.__name__, filename, lineno)
+ logger.error('Coroutine %r defined at %s:%s was never yielded from',
+ func.__name__, filename, lineno)
def coroutine(func):
from . import selector_events
from . import tasks
from . import transports
-from .log import asyncio_log
+from .log import logger
__all__ = ['SelectorEventLoop', 'STDIN', 'STDOUT', 'STDERR']
try:
signal.set_wakeup_fd(-1)
except ValueError as nexc:
- asyncio_log.info('set_wakeup_fd(-1) failed: %s', nexc)
+ logger.info('set_wakeup_fd(-1) failed: %s', nexc)
if exc.errno == errno.EINVAL:
raise RuntimeError('sig {} cannot be caught'.format(sig))
try:
signal.set_wakeup_fd(-1)
except ValueError as exc:
- asyncio_log.info('set_wakeup_fd(-1) failed: %s', exc)
+ logger.info('set_wakeup_fd(-1) failed: %s', exc)
return True
if transp is not None:
transp._process_exited(returncode)
except Exception:
- asyncio_log.exception('Unknown exception in SIGCHLD handler')
+ logger.exception('Unknown exception in SIGCHLD handler')
def _subprocess_closed(self, transport):
pid = transport.get_pid()
def _fatal_error(self, exc):
# should be called by exception handler only
- asyncio_log.exception('Fatal error for %s', self)
+ logger.exception('Fatal error for %s', self)
self._close(exc)
def _close(self, exc):
if self._conn_lost or self._closing:
if self._conn_lost >= constants.LOG_THRESHOLD_FOR_CONNLOST_WRITES:
- asyncio_log.warning('pipe closed by peer or '
- 'os.write(pipe, data) raised exception.')
+ logger.warning('pipe closed by peer or '
+ 'os.write(pipe, data) raised exception.')
self._conn_lost += 1
return
def _fatal_error(self, exc):
# should be called by exception handler only
- asyncio_log.exception('Fatal error for %s', self)
+ logger.exception('Fatal error for %s', self)
self._close(exc)
def _close(self, exc=None):
from . import selector_events
from . import tasks
from . import windows_utils
-from .log import asyncio_log
+from .log import logger
try:
import _overlapped
f = self._proactor.accept_pipe(pipe)
except OSError:
if pipe and pipe.fileno() != -1:
- asyncio_log.exception('Pipe accept failed')
+ logger.exception('Pipe accept failed')
pipe.close()
except futures.CancelledError:
if pipe:
while self._cache:
if not self._poll(1):
- asyncio_log.debug('taking long time to close proactor')
+ logger.debug('taking long time to close proactor')
self._results = []
if self._iocp is not None:
self.assertTrue(self.loop._process_events.called)
@unittest.mock.patch('asyncio.base_events.time')
- @unittest.mock.patch('asyncio.base_events.asyncio_log')
+ @unittest.mock.patch('asyncio.base_events.logger')
def test__run_once_logging(self, m_logging, m_time):
# Log to INFO level if timeout > 1.0 sec.
idx = -1
self.loop._accept_connection(MyProto, sock)
self.assertFalse(sock.close.called)
- @unittest.mock.patch('asyncio.selector_events.asyncio_log')
+ @unittest.mock.patch('asyncio.selector_events.logger')
def test_accept_connection_exception(self, m_log):
sock = unittest.mock.Mock()
sock.fileno.return_value = 10
self.assertRaises(
AssertionError, events.make_handle, h1, ())
- @unittest.mock.patch('asyncio.events.asyncio_log')
+ @unittest.mock.patch('asyncio.events.logger')
def test_callback_with_exception(self, log):
def callback():
raise ValueError()
self.assertRaises(AssertionError, test)
fut.cancel()
- @unittest.mock.patch('asyncio.futures.asyncio_log')
+ @unittest.mock.patch('asyncio.futures.logger')
def test_tb_logger_abandoned(self, m_log):
fut = futures.Future(loop=self.loop)
del fut
self.assertFalse(m_log.error.called)
- @unittest.mock.patch('asyncio.futures.asyncio_log')
+ @unittest.mock.patch('asyncio.futures.logger')
def test_tb_logger_result_unretrieved(self, m_log):
fut = futures.Future(loop=self.loop)
fut.set_result(42)
del fut
self.assertFalse(m_log.error.called)
- @unittest.mock.patch('asyncio.futures.asyncio_log')
+ @unittest.mock.patch('asyncio.futures.logger')
def test_tb_logger_result_retrieved(self, m_log):
fut = futures.Future(loop=self.loop)
fut.set_result(42)
del fut
self.assertFalse(m_log.error.called)
- @unittest.mock.patch('asyncio.futures.asyncio_log')
+ @unittest.mock.patch('asyncio.futures.logger')
def test_tb_logger_exception_unretrieved(self, m_log):
fut = futures.Future(loop=self.loop)
fut.set_exception(RuntimeError('boom'))
test_utils.run_briefly(self.loop)
self.assertTrue(m_log.error.called)
- @unittest.mock.patch('asyncio.futures.asyncio_log')
+ @unittest.mock.patch('asyncio.futures.logger')
def test_tb_logger_exception_retrieved(self, m_log):
fut = futures.Future(loop=self.loop)
fut.set_exception(RuntimeError('boom'))
del fut
self.assertFalse(m_log.error.called)
- @unittest.mock.patch('asyncio.futures.asyncio_log')
+ @unittest.mock.patch('asyncio.futures.logger')
def test_tb_logger_exception_result_retrieved(self, m_log):
fut = futures.Future(loop=self.loop)
fut.set_exception(RuntimeError('boom'))
self.loop._proactor.send.return_value.add_done_callback.\
assert_called_with(tr._loop_writing)
- @unittest.mock.patch('asyncio.proactor_events.asyncio_log')
+ @unittest.mock.patch('asyncio.proactor_events.logger')
def test_loop_writing_err(self, m_log):
err = self.loop._proactor.send.side_effect = OSError()
tr = _ProactorSocketTransport(self.loop, self.sock, self.protocol)
test_utils.run_briefly(self.loop)
self.assertFalse(self.protocol.connection_lost.called)
- @unittest.mock.patch('asyncio.proactor_events.asyncio_log')
+ @unittest.mock.patch('asyncio.proactor_events.logger')
def test_fatal_error(self, m_logging):
tr = _ProactorSocketTransport(self.loop, self.sock, self.protocol)
tr._force_close = unittest.mock.Mock()
def test_process_events(self):
self.loop._process_events([])
- @unittest.mock.patch('asyncio.proactor_events.asyncio_log')
+ @unittest.mock.patch('asyncio.proactor_events.logger')
def test_create_server(self, m_log):
pf = unittest.mock.Mock()
call_soon = self.loop.call_soon = unittest.mock.Mock()
self.assertFalse(self.loop.readers)
self.assertEqual(1, self.loop.remove_reader_count[7])
- @unittest.mock.patch('asyncio.log.asyncio_log.exception')
+ @unittest.mock.patch('asyncio.log.logger.exception')
def test_fatal_error(self, m_exc):
exc = OSError()
tr = _SelectorTransport(self.loop, self.sock, self.protocol, None)
self.loop.assert_writer(7, transport._write_ready)
self.assertEqual(collections.deque([b'data']), transport._buffer)
- @unittest.mock.patch('asyncio.selector_events.asyncio_log')
+ @unittest.mock.patch('asyncio.selector_events.logger')
def test_write_exception(self, m_log):
err = self.sock.send.side_effect = OSError()
transport._write_ready()
transport._fatal_error.assert_called_with(err)
- @unittest.mock.patch('asyncio.selector_events.asyncio_log')
+ @unittest.mock.patch('asyncio.selector_events.logger')
def test_write_ready_exception_and_close(self, m_log):
self.sock.send.side_effect = OSError()
remove_writer = self.loop.remove_writer = unittest.mock.Mock()
transport.write(b'data')
self.assertEqual(transport._conn_lost, 2)
- @unittest.mock.patch('asyncio.selector_events.asyncio_log')
+ @unittest.mock.patch('asyncio.selector_events.logger')
def test_write_exception(self, m_log):
transport = self._make_one()
transport._conn_lost = 1
self.assertEqual(
[(b'data', ('0.0.0.0', 12345))], list(transport._buffer))
- @unittest.mock.patch('asyncio.selector_events.asyncio_log')
+ @unittest.mock.patch('asyncio.selector_events.logger')
def test_sendto_exception(self, m_log):
data = b'data'
err = self.sock.sendto.side_effect = OSError()
self.assertTrue(transport._fatal_error.called)
- @unittest.mock.patch('asyncio.log.asyncio_log.exception')
+ @unittest.mock.patch('asyncio.log.logger.exception')
def test_fatal_error_connected(self, m_exc):
transport = _SelectorDatagramTransport(
self.loop, self.sock, self.protocol, ('0.0.0.0', 1))
signal.SIGINT, lambda: True)
@unittest.mock.patch('asyncio.unix_events.signal')
- @unittest.mock.patch('asyncio.unix_events.asyncio_log')
+ @unittest.mock.patch('asyncio.unix_events.logger')
def test_add_signal_handler_install_error2(self, m_logging, m_signal):
m_signal.NSIG = signal.NSIG
self.assertEqual(1, m_signal.set_wakeup_fd.call_count)
@unittest.mock.patch('asyncio.unix_events.signal')
- @unittest.mock.patch('asyncio.unix_events.asyncio_log')
+ @unittest.mock.patch('asyncio.unix_events.logger')
def test_add_signal_handler_install_error3(self, m_logging, m_signal):
class Err(OSError):
errno = errno.EINVAL
m_signal.signal.call_args[0])
@unittest.mock.patch('asyncio.unix_events.signal')
- @unittest.mock.patch('asyncio.unix_events.asyncio_log')
+ @unittest.mock.patch('asyncio.unix_events.logger')
def test_remove_signal_handler_cleanup_error(self, m_logging, m_signal):
m_signal.NSIG = signal.NSIG
self.loop.add_signal_handler(signal.SIGHUP, lambda: True)
self.assertFalse(m_WEXITSTATUS.called)
self.assertFalse(m_WTERMSIG.called)
- @unittest.mock.patch('asyncio.unix_events.asyncio_log')
+ @unittest.mock.patch('asyncio.unix_events.logger')
@unittest.mock.patch('os.WTERMSIG')
@unittest.mock.patch('os.WEXITSTATUS')
@unittest.mock.patch('os.WIFSIGNALED')
test_utils.run_briefly(self.loop)
self.assertFalse(self.protocol.data_received.called)
- @unittest.mock.patch('asyncio.log.asyncio_log.exception')
+ @unittest.mock.patch('asyncio.log.logger.exception')
@unittest.mock.patch('os.read')
def test__read_ready_error(self, m_read, m_logexc):
tr = unix_events._UnixReadPipeTransport(
self.loop.assert_writer(5, tr._write_ready)
self.assertEqual([b'data'], tr._buffer)
- @unittest.mock.patch('asyncio.unix_events.asyncio_log')
+ @unittest.mock.patch('asyncio.unix_events.logger')
@unittest.mock.patch('os.write')
def test_write_err(self, m_write, m_log):
tr = unix_events._UnixWritePipeTransport(
self.loop.assert_writer(5, tr._write_ready)
self.assertEqual([b'data'], tr._buffer)
- @unittest.mock.patch('asyncio.log.asyncio_log.exception')
+ @unittest.mock.patch('asyncio.log.logger.exception')
@unittest.mock.patch('os.write')
def test__write_ready_err(self, m_write, m_logexc):
tr = unix_events._UnixWritePipeTransport(