Make logging simple, log even uncaught exception
Project description
Logger_tt
Make configuring logging simpler and log even exceptions that you forgot to catch.
Usage:
Install: pip install logger_tt
In the most simple case, add the following code into your main python script of your project:
from logger_tt import setup_logging
setup_logging()
Then from any of your modules, you just need to get a logger
and start logging.
from logging import getLogger
logger = getLogger(__name__)
logger.debug('Module is initialized')
logger.info('Making connection ...')
This will provide your project the following default log behavior:
-
log file: Assume that your
working directory
isproject_root
, log.txt is stored at yourproject_root/logs/
folder. If log path doesn't exist, it will be created. The log file is time rotated at midnight. Maximum of 15 dates of log will be kept. This log file'slevel
isDEBUG
.
The log format is[%(asctime)s] [%(name)s %(levelname)s] %(message)s
where time is%Y-%m-%d %H:%M:%S
.
Example:[2020-05-09 00:31:33] [myproject.mymodule DEBUG] Module is initialized
-
console: log with level
INFO
and above will be printed tostdout
of console. The format for console log is simpler:[%(asctime)s] %(levelname)s: %(message)s
.
Example:[2020-05-09 00:31:34] INFO: Making connection ...
-
urllib3
logger: this ready made logger is to silent unwanted messages fromrequests
library. -
root
logger: if there is no logger initialized in your module, this logger will be used with above behaviors. This logger is also used to log uncaught exception in your project. Example:
raise RecursionError
# log.txt
[2020-05-09 11:42:08] [root ERROR] Uncaught exception
Traceback (most recent call last):
File "D:/MyProject/Echelon/eyes.py", line 13, in <module>
raise RecursionError
RecursionError
Config:
-
You can overwrite the default log path with your own as following:
setup_logging(log_path='new/path/to/your_log.txt')
-
You can config your own logger and handler by providing either
yaml
orjson
config file as following:setup_logging(config_path='path/to/.yaml_or_.json')
Without providing a config file, the default config file with above default log behavior is used. You could copy
log_conf.yaml
orlog_conf.json
shipped with this package to start making your version.
Warning: To process .yaml
config file, you need to pyyaml
package: pip install pyyaml
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
Hashes for logger_tt-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31308860d4e5a2526839b8fd90323fd2b05b28dde2bb44f30b09a0763243c89a |
|
MD5 | 03aceeb635ff35046bbefddb201aba06 |
|
BLAKE2b-256 | d9a40954f3cd66a895030a531efe7ecd088102a716a6f9e3f30595891d57aa33 |