Welcome to aiologger docs!¶
The builtin python logger is IO blocking. This means that using the
builtin logging module will interfere with your asynchronouns
application performance. aiologger aims to be the standard
Asynchronous non blocking logging for python and asyncio.
Installation¶
pip install aiologger
Testing¶
pipenv install --dev
pipenv run test
Dependencies¶
Python 3.6+
Optional: aiofiles is required for file handlers
A word about async, Python and files¶
Tldr; aiologger is only fully async when logging to stdout/stderr. If you log into files on disk you are not being fully async and will be using Threads.
aiologger was created when we realized that there were no async logging libs to use. At the time, Python’s built-in logging infra-structure was fully sync (still is, 3.8 beta is out). That’s why we created aiologger.
Despite everything (in Linux) being a file descriptor, a Network file descriptor and the stdout/stderr FDs are treated differently from files on disk FDs. This happens because there’s no stable/usable async I/O interface published by the OS to be used by Python (or any other language). That’s why logging to files is NOT truly async. aiologger implementation of file logging uses aiofiles, which uses a Thread Pool to write the data. Keep this in mind when using aiologger for file logging.
Other than that, we hope aiologger helps you write fully async apps. :tada: :tada: