adapted_logger is a lib based on Python logging module, permetting injection of new data on logsand redirection to different target
Project description
Adapted logger
==============
A helper log library based on default logging module permetting a custom
format of logs to be redirected to Logstash - Elasticsearch - Kibana.
----
*************
Custom usage:
*************
HOW TO INSTALL
* Install adapted_logger using easy_setup or pip::
pip install adapted_logger
HOW TO USE::
from logger.adapted_logger import AdaptedLogger
logger = AdaptedLogger("project_name", "127.0.0.1") # specify project_name and ip address of current server
log = logger.get_logger()
log.info("This is an info message")
log.debug("This is a debug message")
log.warn("This is a warning message")
log.error("This is an error message")
RESULTS::
2015-10-27 17:06:50,176 project_name INFO 127.0.0.1 This is an info message
2015-10-27 17:06:55,552 project_name DEBUG 127.0.0.1 This is a debug message
2015-10-27 17:07:00,863 project_name WARNING 127.0.0.1 This is a warning message
2015-10-27 17:07:05,360 project_name ERROR 127.0.0.1 This is an error message
*************************
Redirect logs to console:
*************************
Instantiate AdaptedLogger object::
adapted_log = AdaptedLogger("retail_crm_server", "127.0.0.1")
Redirect logs to console (Default behavior)::
adapted_log.redirect_to_console()
Get logger object::
logger = adapted_log.get_logger()
logger.debug("Testing Debug Message")
logger.info("Testing Info Message")
logger.warn("Testing Warn Message")
logger.error("Testing Error Message")
**********************
Redirect logs to file:
**********************
Instantiate AdaptedLogger object::
adapted_log = AdaptedLogger("retail_crm_server", "127.0.0.1")
Redirect logs to file::
adapted_log.redirect_to_file("/path/logfile.log")
Get logger object::
logger = adapted_log.get_logger()
logger.debug("Testing Debug Message")
logger.info("Testing Info Message")
logger.warn("Testing Warn Message")
logger.error("Testing Error Message")
**************
Custom adapter
**************
This adds the possibility to configure your logger within a config file like config.yml,
inside /config folder you should specify your configuration in YAML format.
formatters::
simpleFormater:
format: '%(asctime)s %(name)s %(levelname)s %(message)s'
datefmt: '%Y/%m/%d %H:%M:%S's
Here we specify time, package name, level name, and the message, right now there is no injection of the ip address
handlers ::
console:
class: logging.StreamHandler
formatter: simpleFormater
level: DEBUG
stream: ext://sys.stdout
file:
class : logging.FileHandler
formatter: simpleFormater
level: WARNING
filename: filename_or_path.log
Here we specify handlers, in this exemple we use 2 handlers : console and file.
loggers::
clogger:
level: DEBUG
handlers: [console]
flogger:
level: WARNING
handlers: [file]
And finally we create 2 loggers for console and file handlers.
To inject ip address into context, we have created CustomAdapter class that create an adapter and inject ip in the
process.
Usage ::
logging_config = yaml.load(open('config/config.yml', 'r'))
dictConfig(logging_config)
logger_1 = logging.getLogger("project_name.application_name1")
logger_1 = CustomAdapter(logger_1, {'ip': ip})
logger_2 = logging.getLogger("project_name.application_name2")
logger_2 = CustomAdapter(logger_2, {'ip': ip})
Right now, we can call ::
logger_1.warning('This is a warning Message')
logger_2.error('This is an error message)
==============
A helper log library based on default logging module permetting a custom
format of logs to be redirected to Logstash - Elasticsearch - Kibana.
----
*************
Custom usage:
*************
HOW TO INSTALL
* Install adapted_logger using easy_setup or pip::
pip install adapted_logger
HOW TO USE::
from logger.adapted_logger import AdaptedLogger
logger = AdaptedLogger("project_name", "127.0.0.1") # specify project_name and ip address of current server
log = logger.get_logger()
log.info("This is an info message")
log.debug("This is a debug message")
log.warn("This is a warning message")
log.error("This is an error message")
RESULTS::
2015-10-27 17:06:50,176 project_name INFO 127.0.0.1 This is an info message
2015-10-27 17:06:55,552 project_name DEBUG 127.0.0.1 This is a debug message
2015-10-27 17:07:00,863 project_name WARNING 127.0.0.1 This is a warning message
2015-10-27 17:07:05,360 project_name ERROR 127.0.0.1 This is an error message
*************************
Redirect logs to console:
*************************
Instantiate AdaptedLogger object::
adapted_log = AdaptedLogger("retail_crm_server", "127.0.0.1")
Redirect logs to console (Default behavior)::
adapted_log.redirect_to_console()
Get logger object::
logger = adapted_log.get_logger()
logger.debug("Testing Debug Message")
logger.info("Testing Info Message")
logger.warn("Testing Warn Message")
logger.error("Testing Error Message")
**********************
Redirect logs to file:
**********************
Instantiate AdaptedLogger object::
adapted_log = AdaptedLogger("retail_crm_server", "127.0.0.1")
Redirect logs to file::
adapted_log.redirect_to_file("/path/logfile.log")
Get logger object::
logger = adapted_log.get_logger()
logger.debug("Testing Debug Message")
logger.info("Testing Info Message")
logger.warn("Testing Warn Message")
logger.error("Testing Error Message")
**************
Custom adapter
**************
This adds the possibility to configure your logger within a config file like config.yml,
inside /config folder you should specify your configuration in YAML format.
formatters::
simpleFormater:
format: '%(asctime)s %(name)s %(levelname)s %(message)s'
datefmt: '%Y/%m/%d %H:%M:%S's
Here we specify time, package name, level name, and the message, right now there is no injection of the ip address
handlers ::
console:
class: logging.StreamHandler
formatter: simpleFormater
level: DEBUG
stream: ext://sys.stdout
file:
class : logging.FileHandler
formatter: simpleFormater
level: WARNING
filename: filename_or_path.log
Here we specify handlers, in this exemple we use 2 handlers : console and file.
loggers::
clogger:
level: DEBUG
handlers: [console]
flogger:
level: WARNING
handlers: [file]
And finally we create 2 loggers for console and file handlers.
To inject ip address into context, we have created CustomAdapter class that create an adapter and inject ip in the
process.
Usage ::
logging_config = yaml.load(open('config/config.yml', 'r'))
dictConfig(logging_config)
logger_1 = logging.getLogger("project_name.application_name1")
logger_1 = CustomAdapter(logger_1, {'ip': ip})
logger_2 = logging.getLogger("project_name.application_name2")
logger_2 = CustomAdapter(logger_2, {'ip': ip})
Right now, we can call ::
logger_1.warning('This is a warning Message')
logger_2.error('This is an error message)
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
adapted_logger-0.1.10.tar.gz
(4.0 kB
view hashes)
Built Distribution
Close
Hashes for adapted_logger-0.1.10-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15852724a37286eaab96f1aaf20fe20eccbd493ac11205c44e7dd6352ca22387 |
|
MD5 | 7e5043452586c42340bdf5a39b32eb35 |
|
BLAKE2b-256 | e9854eb0dbe5b6aef56d5f8f4dd62bde4d57a7408b202c1adf648a18fca49247 |