This python library provides simple wrapper for standart logging module.
If you want something more than "logging.basicConfig", but don't want to read a lot of documentation and write a lot of code.
WARNING Since v0.2 python 2 is not supported anymore.
You can find examples in ./examples directory
import logging
import easylogconfig
log = logging.getLogger(__name__)
# print messages to the stdout, add debug level
easylogconfig.auto(debug=True)
# or print messages to the syslog
easylogconfig.auto(syslog_tag="example_tag")
# or log messages to remote syslog server
easylogconfig.auto(syslog_tag="example_tag", syslog_address=("127.0.0.1", 514))
# or print messages to the file without datetime but with thread names
easylogconfig.auto(file_name="/var/log/example.log", file_backup_count=30,
datetime=False, thread=True)
log.info("info message")
log.debug("debug message")
# output format:
# 2019-03-22/10:17:28 INFO info message
Library provides one simple function auto with arguments:
- formatter arguments:
- debug=False: add debug messages to output?
- thread=False: add thread names to messages?
- datetime=True: add datetime to messages?
- level=False: add level names to messages?
- SysLogHandler arguments:
- syslog_tag=None: if set to str, log messages to syslog with this tag
- syslog_address="/dev/log": syslog server address. By default, it sends syslog messages via
/dev/log
file. It can be set to string (ip address or hostname, in this case default 514 port is used), or to Tuple[str, int] (like logging.handlers.SysLogHandler)
- TimedRotatingFileHandler arguments:
- file_name=None: if set to str, log messages to this tile
- file_when="midnight": file rotating time
- file_backup_count=7: keep last files
Log handlers configuration rules:
- StreamHandler will be used if syslog_tag or file_name are omitted or empty strings
- SysLogHandler will be used if syslog_tag is set to none-empty string
- TimedRotatingFileHandler will be used if file_name is set to none-empty string
- ValueError will be raised if both syslog_tag and file_name are set to none-empty string
python3 -m pip install -U easylogconfig
# or
python3 -m pip install -U git+https://github.com/tierpod/easylogconfig#egg=easylogconfig
make venv
source ./venv/bin/activate
(venv) make init-dev init