An uncomplicated way to use logger inside python applications
- Created at: 01/05/2020
- Updated at: 28/07/2022
- Author: Ben Mz (bmz)
- Maintainer: Ben Mz (bmz)
- Client: ProHacktive (https://prohacktive.io)
The easy way is by using pip
pip3 install phk-logger
The harder way is from sources
git clone https://github.com/proh4cktive/phk-logger.git
cd phk-logger
python install setup.py
PHK-Logger is a lib so you just have to import it when needed
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from phk_logger import PHKLogger as Logger
Then in your code you can instantiate it directly
logger = Logger(name='mytest', cli=True)
And use it when needed
logger.info('This is an info message') # Will not be printed as default level is Warning
logger.write('A blue warning', level='warning', color='blue')
PHK-Logger is configred by default to output log event to your SysLog sub-system (Only supports Linux/MacOS). Some additional options can be set in order to change this behaviour.
- name Set a specific name to your logger stream, by default will use the
__name__
var. - level Set the log level, must be a level from logging package
- filename If set phk-logger will output events to a specific filename using TimedRotatingFileHandler configured with a file rotating every midnight, and 3 backup files
- backup Only used if filename is configured, specifiy the number of backup to keep
- when Only used if filename is configured, specify when to execute the file rotation
- cli If set to True this will also output log event to command line interface (CLI). Only useful for debugging app.
- pattern Define the log pattern to use for event output. Default is
%(name)s %(asctime)s %(levelname)-8s %(message)s
Several methods can be used to generate event logs, they all support the same options (only usefuls when using cli flag):
- msg: the message to output
- color: override the default color
- light: override the light mode
- debug(msg, color='blue', light=True) output event with prefix:
[*]
- info(msg, color='green', light=False) output event with prefix:
[+]
- warning(msg, color='yellow', light=False) output event with prefix:
[-]
- error(msg, color='red', light=False) output event with prefix:
[!]
- critical(msg, color='red', light=True) output event with prefix:
[!]
An additional method is accessible which support a level parameter
- write(message, level=None, color=None, light=None)
Multiple colors are supported (case insensitive)
- BLACK
- BLUE
- GREEN
- CYAN
- RED
- PURPLE
- YELLOW
- WHITE
- no-color (default)
Multiple levels are supported (case insensitive)
- DEBUG
- INFO
- INFOS
- WARNING
- ERROR
- CRITICAL
Run tests easily using pytest
pytest -vv
- Doc