A Python logging helper
Project description
sharklog
Python logging helper.
Quick Start
- Install sharklog:
python -m pip install sharklog
- Use in standalone script:
# standalone.py
from sharklog import logging
logging.init(debug=True) # init current logger with level=logging.DEBUG
# or logging.init(level=logging.DEBUG)
logging.debug("debug message")
logging.info("info message")
logging.warning("warning message")
logging.error("error message")
If you want to change logging level for a module, you can set it in the module by:
from sharklog import logging
logging.getLogger().setLevel(logging.DEBUG)
or set it outside the module by specifying the logger name:
from sharklog import logging
logging.getLogger("module_name").setLevel(logging.DEBUG)
The default format of log messages is:
"[%(levelname)s]: %(message)s [%(asctime)s](%(filename)s:%(lineno)d)"
Usage in Package Development
Now I assume your file structure is like this:
--- parent_package
|--- __init__.py
|--- parent_module.py
|--- logger.py
|--- sub_package
|--- __init__.py
|--- sub_module.py
- First, you can add
NullHandlerto the root logger inparent_package/__init__.py, which logger namedparent_package:
# parent/__init__.py
from sharklog import logging
logging.getLogger().addHandler(logging.NullHandler())
This is mentioned in the Python Logging HOWTO to identify the logger's default behavior.
- Then, use
loggingin your package, they will be prefixed with the logger nameparent_package.:
# parent_module.py which is placed under package `parent_package`
from sharklog import logging
logger = logging.getLogger() # the logger name will be `parent_package.parent_module`
logger.debug("debug message")
logger.info("info message")
logger.warning("warning message")
logger.error("error message")
If you already using builtin logging module, you can use sharklog as a drop-in replacement.
Just change into import loggingfrom sharklog import logging. Then you can use logging as usual:
# sub_module.py
from sharklog import logging
# these log messages will be prefixed with the logger name `xxxpackage.xxmodule.module_name`
# here, as an example, the logger name will be `parent_package.sub_package.sub_module`
logging.debug("debug message")
logging.info("info message")
logging.warning("warning message")
logging.error("error message")
- Finally, you can set the logging level for the package in the main script which using the package:
# main.py
from sharklog import logging
from parent_package import parent_module
from parent_package.sub_package import sub_module
if __name__ == "__main__":
logging.init(debug=True) # init current logger with level=logging.DEBUG
# or logging.init(level=logging.DEBUG)
# logging inside the package will use the level set here
Or if you want to change the logging level for a specific module, you can set it in the module by:
from sharklog import logging
logging.getLogger().setLevel(logging.WARNING)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters