pyEventLogger - a simple Python Library for making customized Logs of certain events that occur in a program

Related tags

LoggingpyEventLogger
Overview

pyEventLogger v1.0

pyEventLogger is a simple Python Library for making customized Logs of certain events that occur in a program. The logs can be fully customized and can be printed in colored format or can be stored in a file.

Note: Your software or the console in which you are going to print colored logs should support the ANSI Escape Sequences or the colored logs feature may not work!

Installation

To install this library, type:

pip install pyEventLogger

in the Command Prompt or Terminal

Import

To import this library, use the following code:

from pyEventLogger import pyLogger

Logging Levels:

There are 6 different types of logs in this library. In order of increasing importance, they are:

  • Debug
  • Info
  • Warning
  • Success
  • Error
  • Critical

Print basic logs:

Use the following program to print basic logs in the Console:

from pyEventLogger import pyLogger  # Import the library

logger = pyLogger(colored_output=True)  # Make an object of the pyLogger Class
# Note: If your console doesn't support the ANSI Escape Sequences then use: colored_output=False

logger.debug(message="This is Debug Message!")  # Debug Log
logger.info(message="This is Information Message!")  # Information Log
logger.warn(message="This is Warning Message!")  # Warning Log
logger.success(message="This is Success Message!")  # Success Log
logger.error(message="This is Error Message!")  # Error Log
logger.critical(message="This is Critical Message!")  # Critical Log

The pyLogger Class

Parameters

The pyLogger Class has the following Parameters:

  • colored_output --> Set it to True if you want colored output
  • print_log --> Set it to True if you want your log to be printed out into the Console
  • make_file --> Set it to True if you want your log to be stored in a file
  • file_name --> If you set the make_file parameter to True, then you can use this parameter to change the file name
  • rewrite_file --> Set it to True if you want your log file to be rewritten after you run the program
  • file_logs --> If you want only the specified log messages in your file then pass this parameter with a list containing the log types you want. Example: If you want only the errors and critical messages in file then you pass the value of the parameter as python ['ERROR', 'CRITICAL']

Customizing the Logs:

Customizing the Log text:

To customize a log, use the format_log(log_type, format_string) function. For example, if you want to customize the log type of Debug, then use the following code:

from pyEventLogger import pyLogger

logger = pyLogger()

debug_format_string = "[log_type] [time] [message]"  # Define a variable for the format string

logger.format_log(log_type='DEBUG', format_string=debug_format_string)  # Use this function to format a log

logger.debug(message="This is Debug Message!")

See the above example. It has a variable called debug_format_string which defines how the contents of the Log should be.

Rules for format strings:

The format string should have a format like "[time] [log_type] [message]". Where the contents in the squared braces [] will be replaced with the values of the parameters you pass to that function. You can give any number of spaces you like between the contents. Example: "[log_type] [time] [message]". The log will be printed in the same format and also can be written in a file in the same format.

There are some special meanings to some parameters like log_type. The program automatically adds the log type even if the user doesn't pass that parameter's value to a function, also the time parameter will be given a default value of the time that function is called.

You can add any number of contents in a log. Example Code:

from pyEventLogger import pyLogger

logger = pyLogger()

debug_format_string = "[log_type] [time] [message] [file_name]"  # Add a 'file_name' content

logger.format_log(log_type='DEBUG', format_string=debug_format_string)

logger.debug(message="This is Debug Message!", file_name="main.py")  # Set a value to the added content

Customizing the Log text color/style:

To customize a log's color, use the format_log_color(log_type, format_string) function. For example, if you want to customize the log type of Debug, then use the following code:

from pyEventLogger import pyLogger

logger = pyLogger(colored_output=True)  # Set the colored output to True

debug_format_string = "[log_type] [time] [file_name] [message]"  # Define a variable for the format string
debug_format_color = "[bold cyan black] [normal yellow black] [italic magenta black] [normal white black]"  # Define a variable for the format color

logger.format_log(log_type='DEBUG', format_string=debug_format_string)  # Format the log
logger.format_log_color(log_type='DEBUG', format_string=debug_format_color)  # Format the color

logger.debug(message="This is Debug Message!", file_name="main.py")

In the above example, you can see that there is a variable defined for the log color.

Rules for format color:

The format of color string should be the same as text string.

The contents should be seperated by space.

The first content in square braces should be the text style like normal, bold,italic,etc.

The second content should be the text color and the third should be background color. You can also use HEX values for colors too!

These three elements should be seperated by a space.

The first content will be the style for first item in log and so on...

Changing the format of time:

To change the format of time, use the format_time variable of the pyLogger class It should be in string format and is the same format as used in Python time.strftime() function.

Including error messages in error and critical log:

To include the error messages along with the log message in error and critical logs, set the include_error_message parameter of the error and critical functions to True

Example Code:

import time
import random
from pyEventLogger import pyLogger

logger = pyLogger(colored_output=False, make_file=True, file_name='math', rewrite_file=True)

logger.format_log(log_type="INFO", format_string="[time] [log_type] [message] [answer]")
logger.format_log_color(log_type="INFO",
                        format_string="[bold yellow black][bold magenta black][normal #FFFFFF black][italic green black]")

while True:
    try:
        logger.debug(message="Taking two random numbers...")
        n1 = random.randint(-10, 10)
        n2 = random.randint(-10, 10)
        logger.debug(message="Successfully found two random numbers!")

        logger.info(message=f"Two numbers are {n1} and {n2}")

        logger.debug(message="Starting operations with two numbers...")
        addition = n1 + n2
        logger.info(message="Added two numbers:", answer=addition)
        subtraction = n2 - n1
        logger.info(message="Subtracted two numbers:", answer=subtraction)
        multiplication = n1 * n2
        logger.info(message="Multiplied two numbers:", answer=multiplication)
        division = n2 / n1
        logger.info(message="Divided two numbers:", answer=division)

        logger.success(message="Successfully completed operations with two numbers!")
    except ZeroDivisionError:
        logger.error(message="An Error Occurred!", include_error_message=True)
    time.sleep(10)

Change Log:

  • 15/01/2022(v0.1) - First made this library and updated it
  • 15/01/2022(v0.1.2) - Updated and added many features
  • 21/01/2022(v0.5.0) - Updated and added some other features
  • 23/01/2022(v0.7) - Added Exceptions
  • 27/01/2022(v0.9) - Added features to error and critical logs
  • 28/01/2022(v1.0) - Added doc-strings to code\
  • 29/01/2022(v1.0) - First Release!

Thank You!

Owner
Siddhesh Chavan
I am a 15 year old boy who loves coding!
Siddhesh Chavan
Simple and versatile logging library for python 3.6 above

Simple and versatile logging library for python 3.6 above

Miguel 1 Nov 23, 2022
A basic logging library for Python.

log.py 📖 About: A basic logging library for Python with the capability to: save to files. have custom formats. have custom levels. be used instantiat

Sebastiaan Bij 1 Jan 19, 2022
A watchdog and logger to Discord for hosting ScPrime servers.

ScpDog A watchdog and logger to Discord for hosting ScPrime servers. Designed to work on Linux servers. This is only capable of sending the logs from

Keagan Landfried 3 Jan 10, 2022
Rich is a Python library for rich text and beautiful formatting in the terminal.

Rich 中文 readme • lengua española readme • Läs på svenska Rich is a Python library for rich text and beautiful formatting in the terminal. The Rich API

Will McGugan 41.5k Jan 07, 2023
Docker container log aggregation with Elasticsearch, Kibana & Filebeat

Epilog Dead simple container log aggregation with ELK stack Preface Epilog aims to demonstrate a language-agnostic, non-invasive, and straightfo

Redowan Delowar 23 Oct 26, 2022
Yaml - Loggers are like print() statements

Upgrade your print statements Loggers are like print() statements except they also include loads of other metadata: timestamp msg (same as print!) arg

isaac peterson 38 Jul 20, 2022
A colored formatter for the python logging module

Log formatting with colors! colorlog.ColoredFormatter is a formatter for use with Python's logging module that outputs records using terminal colors.

Sam Clements 778 Dec 26, 2022
Stand-alone parser for User Access Logging from Server 2012 and newer systems

KStrike Stand-alone parser for User Access Logging from Server 2012 and newer systems BriMor Labs KStrike This script will parse data from the User Ac

BriMor Labs 69 Nov 01, 2022
Multi-processing capable print-like logger for Python

MPLogger Multi-processing capable print-like logger for Python Requirements and Installation Python 3.8+ is required Pip pip install mplogger Manual P

Eötvös Loránd University Department of Digital Humanities 1 Jan 28, 2022
Scout: an open-source version of the monitoring tool

Badger Scout Scout is an open-source version of the monitoring tool used by Badg

Badger Finance 2 Jan 13, 2022
Discord-Image-Logger - Discord Image Logger With Python

Discord-Image-Logger A exploit I found in discord. Working as of now. Explanatio

111 Dec 31, 2022
ScreenshotLogger works just like a keylogger but instead of capturing keystroke,it captures the screen, stores it or sends via email

ScreenshotLogger works just like a keylogger but instead of capturing keystroke,it captures the screen, stores it or sends via email. Scrapeasy is super easy to use and handles everything for you. Ju

Ifechukwudeni Oweh 17 Jul 17, 2022
Logging system for the TPC software.

tpc_logger Logging system for the TPC software. The TPC Logger class provides a singleton for logging information within C++ code or in the python API

UC Davis Machine Learning 1 Jan 10, 2022
Debugging-friendly exceptions for Python

Better tracebacks This is a more helpful version of Python's built-in exception message: It shows more code context and the current values of nearby v

Clemens Korndörfer 1.2k Dec 28, 2022
蓝鲸日志平台(BK-LOG)是为解决分布式架构下日志收集、查询困难的一款日志产品,基于业界主流的全文检索引擎

蓝鲸日志平台(BK-LOG)是为解决分布式架构下日志收集、查询困难的一款日志产品,基于业界主流的全文检索引擎,通过蓝鲸智云的专属 Agent 进行日志采集,提供多种场景化的采集、查询功能。

腾讯蓝鲸 102 Dec 22, 2022
👻 - Simple Keylloger with Socket

Keyllogs 👻 - Simple Keylloger with Socket Keyllogs 🎲 - Run Keyllogs

Bidouffe 3 Mar 28, 2022
The easy way to send notifications

See changelog for recent changes Got an app or service and you want to enable your users to use notifications with their provider of choice? Working o

Or Carmi 2.4k Dec 25, 2022
Colored terminal output for Python's logging module

coloredlogs: Colored terminal output for Python's logging module The coloredlogs package enables colored terminal output for Python's logging module.

Peter Odding 496 Dec 30, 2022
Translating symbolicated Apple JSON format crash log into our old friends :)

CrashTranslation Translating symbolicated Apple JSON format crash log into our old friends :) Usage python3 translation.py -i {input_sybolicated_json_

Kam-To 11 May 16, 2022
🐑 Syslog Simulator hazır veya kullanıcıların eklediği logları belirtilen adreslere ve port'a seçilen döngüde syslog ile gönderilmesini sağlayan araçtır. | 🇹🇷

syslogsimulator hazır ürün loglarını SIEM veya log toplayıcısına istediğiniz portta belirli sürelerde göndermeyi sağlayan küçük bir araçtır.

Enes Aydın 3 Sep 28, 2021