A colored formatter for the python logging module

Overview

Log formatting with colors!

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

Installation

Install from PyPI with:

pip install colorlog

Several Linux distributions provide official packages (Debian, Gentoo, OpenSuse and Ubuntu), and others have user provided packages (Arch AUR, BSD ports, Conda, Fedora packaging scripts).

Usage

import colorlog

handler = colorlog.StreamHandler()
handler.setFormatter(colorlog.ColoredFormatter(
	'%(log_color)s%(levelname)s:%(name)s:%(message)s'))

logger = colorlog.getLogger('example')
logger.addHandler(handler)

The ColoredFormatter class takes several arguments:

  • format: The format string used to output the message (required).
  • datefmt: An optional date format passed to the base class. See logging.Formatter.
  • reset: Implicitly adds a color reset code to the message output, unless the output already ends with one. Defaults to True.
  • log_colors: A mapping of record level names to color names. The defaults can be found in colorlog.default_log_colors, or the below example.
  • secondary_log_colors: A mapping of names to log_colors style mappings, defining additional colors that can be used in format strings. See below for an example.
  • style: Available on Python 3.2 and above. See logging.Formatter.

Color escape codes can be selected based on the log records level, by adding parameters to the format string:

  • log_color: Return the color associated with the records level.
  • <name>_log_color: Return another color based on the records level if the formatter has secondary colors configured (see secondary_log_colors below).

Multiple escape codes can be used at once by joining them with commas when configuring the color for a log level (but can't be used directly in the format string). For example, black,bg_white would use the escape codes for black text on a white background.

The following escape codes are made available for use in the format string:

  • {color}, fg_{color}, bg_{color}: Foreground and background colors.
  • bold, bold_{color}, fg_bold_{color}, bg_bold_{color}: Bold/bright colors.
  • thin, thin_{color}, fg_thin_{color}: Thin colors (terminal dependent).
  • reset: Clear all formatting (both foreground and background colors).

The available color names are black, red, green, yellow, blue, purple, cyan and white.

Examples

Example output

The following code creates a ColoredFormatter for use in a logging setup, using the default values for each argument.

from colorlog import ColoredFormatter

formatter = ColoredFormatter(
	"%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s",
	datefmt=None,
	reset=True,
	log_colors={
		'DEBUG':    'cyan',
		'INFO':     'green',
		'WARNING':  'yellow',
		'ERROR':    'red',
		'CRITICAL': 'red,bg_white',
	},
	secondary_log_colors={},
	style='%'
)

Using secondary_log_colors

Secondary log colors are a way to have more than one color that is selected based on the log level. Each key in secondary_log_colors adds an attribute that can be used in format strings (message becomes message_log_color), and has a corresponding value that is identical in format to the log_colors argument.

The following example highlights the level name using the default log colors, and highlights the message in red for error and critical level log messages.

from colorlog import ColoredFormatter

formatter = ColoredFormatter(
	"%(log_color)s%(levelname)-8s%(reset)s %(message_log_color)s%(message)s",
	secondary_log_colors={
		'message': {
			'ERROR':    'red',
			'CRITICAL': 'red'
		}
	}
)

With dictConfig

logging.config.dictConfig({
	'formatters': {
		'colored': {
			'()': 'colorlog.ColoredFormatter',
			'format': "%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s"
		}
	}
})

A full example dictionary can be found in tests/test_colorlog.py.

With fileConfig

...

[formatters]
keys=color

[formatter_color]
class=colorlog.ColoredFormatter
format=%(log_color)s%(levelname)-8s%(reset)s %(bg_blue)s[%(name)s]%(reset)s %(message)s from fileConfig
datefmt=%m-%d %H:%M:%S

An instance of ColoredFormatter created with those arguments will then be used by any handlers that are configured to use the color formatter.

A full example configuration can be found in tests/test_config.ini.

With custom log levels

ColoredFormatter will work with custom log levels added with logging.addLevelName:

import logging, colorlog
TRACE = 5
logging.addLevelName(TRACE, 'TRACE')
formatter = colorlog.ColoredFormatter(log_colors={'TRACE': 'yellow'})
handler = logging.StreamHandler()
handler.setFormatter(formatter)
logger = logging.getLogger('example')
logger.addHandler(handler)
logger.setLevel('TRACE')
logger.log(TRACE, 'a message using a custom level')

Compatibility

colorlog works on Python 2.6 and above, including Python 3.

On Windows, colorama is required for colorlog to work properly. It will automatically be included when installing colorlog on windows.

Tests

Tests similar to the above examples are found in tests/test_colorlog.py.

tox will run the tests under all compatible python versions.

Status

colorlog is in maintainance mode. I try and ensure bugfixes are published, but compatibility with Python 2.6+ and Python 3+ makes this a difficult codebase to add features to. Any changes that might break backwards compatibility for existing users will not be considered.

Alternatives

There are some more modern libraries for improving Python logging you may find useful.

Projects using colorlog

Licence

Copyright (c) 2012-2020 Sam Clements [email protected]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Comments
  • Support bg+fg for log_color/log_message_color

    Support bg+fg for log_color/log_message_color

    Enhancement

    • Added option for log_message_color, which (like log_color) is intended to provide debug level specific coloring for the message (set via log_message_colors in init)
    • Added support for simultaneous fg and bg color settings in log_color/log_message_color by appending another code after a single whitspace example:
    formatter = ColoredFormatter(
            "%(log_color)s%(levelname)-8s%(reset)s %(blue)s%(message)s",
            datefmt=None,
            reset=True,
            log_colors={
                'DEBUG':    'cyan',
                'INFO':     'green',
                'WARNING':  'yellow',
                'ERROR':    'red',
                'CRITICAL': 'white bg_red',
            }
    )
    
    enhancement 
    opened by the01 9
  • Behavior changes based on presense of colorama

    Behavior changes based on presense of colorama

    Without colorama installed, the provided ColoredFormatter will always use colors, even when redirected to a file (ie. $ ./command.py 2> error_out.txt)

    When colorama is installed, colorama detects a non-tty, and strips the colors.

    Since colorlog provides a TTYColoredFormater that will strip colors for a non-tty, the above behavior seems not only inconsistent, but unintended. (ie. the user chooses stripping for non-tty by choosing TTYColoredFormater instead of ColoredFormatter, not by having or not having colorama installed.)

    I therefore suggest that the colorama init should be called as: colorama.init(strip=False) or minimally some other option should be available to colorlog users to 'force' colors or prevent stripping.

    I like my logs to have color even when redirected to files. Using 'less -R' let's you still benefit from the colors when reviewing the output.

    opened by proximous 8
  • Add support for per-loglevel formatting

    Add support for per-loglevel formatting

    This makes it possible to specify a formatter dictionary that enables colorlog to format messages differently based on their log level.

    Use case:

    • If you want to log informational output using logger.info(), you are rarely interested in the module and line number where the message comes from.
    • On the other hand, it can be useful to prefix warnings, errors and criticals with 'WARNING: ' etc. and add line number and module at the end, for example.

    This is why I added the level_fmts argument to ColoredFormatter.

    I tested the new code with Python 2.7 and Python 3.5.

    Possible issues:

    • default_level_formats has nothing to do with colorlog's normal default_formats. Could this be confusing?
    • We could reuse the fmt argument instead of introducing the new level_fmts. We would need to check if fmt is a dict or a string in ColoredFormatter.__init__() and could use it differently depending on the type. I don't know if that would be better. What is your opinion?
    opened by mdraw 8
  • Add all parameters to basicConfig

    Add all parameters to basicConfig

    Awesome package, very nicely done!

    I was wondering why the basicConfig only has the fmt and datefmt option instead of all the ColoredFormatter options since you directly use this class?

    I have added them like this and it seems to work fine. Perhaps I'm missing something in how to use the package but this way I can simply use the basicConfig without creating any new handlers etc. and still choose my own colors :+1:

    def basicConfig(**kwargs):
        """Call ``logging.basicConfig`` and override the formatter it creates."""
        logging.basicConfig(**kwargs)
        logging._acquireLock()
        try:
            stream = logging.root.handlers[0]
            stream.setFormatter(
                ColoredFormatter(
                    fmt=kwargs.get('format', BASIC_FORMAT),
                    datefmt=kwargs.get('datefmt', None),
                    style=kwargs.get('style', '%'),
                    log_colors=kwargs.get('log_colors', None),
                    reset=kwargs.get('reset', True),
                    secondary_log_colors=kwargs.get('secondary_log_colors', None)))
        finally:
            logging._releaseLock()
    
    opened by Michielskilian 7
  • Switch to deactivate color output

    Switch to deactivate color output

    There should be a switch to deactivate the color output. Most of the time for debug purpose.

    I use my code on Linux (bash) and Windwos10 (Thonny Pythton GUI). The latter is not able to handle the color codes and output all the escape characters. This is ugly.

    I just want to deactivate the color-escape sequences but not the other settings (e.g. format).

    opened by buhtz 7
  • Feature: Custom level

    Feature: Custom level

    Hi,

    If already supported, could you please detail how to set a custom logging level with an associated color and formatting? Otherwise that would be a nice addition!

    Thanks

    opened by aress31 7
  • Remove ColoredRecord class

    Remove ColoredRecord class

    This intends to solve a rare problem I had encountered. I use both colorlog and multiprocessing-logging. I noticed that in the subprocesses, if I call logger.exception, I do get the message but not the traceback. I tracked down the issue to this line, where multiprocessing-logging calls format(record), expecting the formatter to set record.exc_text. Since the ColoredFormatter wraps the record before calling the base class, the original record doesn't get it's exc_text set, and I lose my traceback. I think that this issue is much easier to fix in colorlog. I removed the ColoredRecord and instead just set the escape code properties to the original record.

    opened by noamkush 6
  • Logging is sometimes duplicated without color

    Logging is sometimes duplicated without color

    Asking here primarily to see if you know an obvious reason why this is happening:

    I'm sometimes getting a double logging output in my log:

    1-19 14:26:36 DEBUG    First dates from partial predictions: {'transfer_rates': datetime.date(2020, 10, 5), 'orders_day': datetime.date(2020, 10, 5), 'units_order': datetime.date(2020, 10, 5)}
    11-19 14:26:36 DEBUG    First date of joint prediction: 2020-10-05
    11-19 14:26:36 DEBUG    Days predicted in partial predictions fron joint first date: {'transfer_rates': 42, 'orders_day': 42, 'units_order': 42}
    11-19 14:26:36 DEBUG    Last date of joint prediction: 2020-11-15
    11-19 14:26:38 DEBUG    Using expected new [[ 850. 1200. 1200. 1200. 3000. 3000. 3000.]]
    11-19 14:26:38 DEBUG    Using expected winback [[2400. 2600. 2600. 2500. 3000. 3000. 3200.]]
    11-19 14:26:38 DEBUG    Added noise to expected new and winback
    11-19 14:26:38 DEBUG    Normalize ranges and draws on prediction for transfer_rates
    DEBUG:main:Normalize ranges and draws on prediction for transfer_rates
    11-19 14:26:38 DEBUG    Normalize ranges and draws on prediction for orders_day
    DEBUG:main:Normalize ranges and draws on prediction for orders_day
    11-19 14:26:38 DEBUG    Normalize ranges and draws on prediction for units_order
    DEBUG:main:Normalize ranges and draws on prediction for units_order
    11-19 14:26:38 INFO     Add adjustments
    INFO:main:Add adjustments
    

    image

    The white lines containing :main: are the lines I do not expect. Once these lines start appearing, the double logs appear with every single logging statement.

    We import a logger in our scripts that is defined as:

    def make_logger(console=True):
        logger = logging.getLogger(name)
        logger.setLevel(level)
    
        if console:
            color_fmt = "%(log_color)s" if use_color and console else ""
            # some additional unrelated code here, removed for clarity
       
            # set logger stream variable so color only in interactive
            # terminals AND notebooks, preventing ANSI escape signatures
            # in grayscale log files
            stream = None if is_in_ipython_session() else sys.stderr
    
            formatter = colorlog.ColoredFormatter(
                fmt=color_fmt + log_format_for_console,
                datefmt=time_format_for_console,
                log_colors={
                    "DEBUG": "blue",
                    "INFO": "green",
                    "WARNING": "yellow",
                    "ERROR": "red",
                    "CRITICAL": "bold_red,bg_white",
                },
                stream=stream,
            )
            if log_in_gmt:
                formatter.converter = time.gmtime
    
            handler = colorlog.StreamHandler()
            handler.setFormatter(formatter)
    
            logger.addHandler(handler)
    

    I've use this as logger = make_logger(), and then e.g. logger.debug(...). I've noticed that I can trigger the double line behaviour if I accidentally call logging.debug instead of logger.debug, but that is not the case in the above.

    Do you have any idea what's going on?

    opened by thomasaarholt 5
  • colorlog.LevelFormatter does not allow to use dict for fmt parameter on python 3.8

    colorlog.LevelFormatter does not allow to use dict for fmt parameter on python 3.8

    Traceback (most recent call last): File "D:/gitrep/DevOpsCI/DiasoftBuild/DiasoftBuild.py", line 36, in from LogInit import file_formatter File "D:\gitrep\DevOpsCI\DiasoftBuild\CommonLib\LogInit.py", line 98, in formatter = LevelFormatter( File "C:\Users\panov-ea\AppData\Roaming\Python\Python38\site-packages\colorlog\colorlog.py", line 160, in init super(LevelFormatter, self).init( File "C:\Users\panov-ea\AppData\Roaming\Python\Python38\site-packages\colorlog\colorlog.py", line 91, in init super(ColoredFormatter, self).init(fmt, datefmt, style) File "C:\Users\panov-ea\AppData\Local\Programs\Python\Python38-32\lib\logging_init_.py", line 576, in init self.style.validate() File "C:\Users\panov-ea\AppData\Local\Programs\Python\Python38-32\lib\logging_init.py", line 456, in validate for _, fieldname, spec, conversion in _str_formatter.parse(self._fmt): File "C:\Users\panov-ea\AppData\Local\Programs\Python\Python38-32\lib\string.py", line 261, in parse return _string.formatter_parser(format_string) TypeError: expected str, got dict

    opened by PanovEduard 5
  • Error with reset color and style

    Error with reset color and style "{" on Python 3.6

    Python 3.6.0a4 64-bit on Windows

    The following code produces an error with Python 3.6 but not Python 3.5:

    import logging, colorlog
    
    logger  = logging.getLogger()
    handler = logging.StreamHandler()
    
    handler.setFormatter(colorlog.ColoredFormatter(
        '{log_color}{levelname}:{reset} {message}', style = '{'))
    
    logging.getLogger().addHandler(handler)
    
    logger.error('TEST')
    
    --- Logging error ---
    Traceback (most recent call last):
      File "F:\PortableApps\Python3x\lib\logging\__init__.py", line 985, in emit
        msg = self.format(record)
      File "F:\PortableApps\Python3x\lib\logging\__init__.py", line 831, in format
        return fmt.format(record)
      File "F:\PortableApps\Python3x\lib\site-packages\colorlog\colorlog.py", line 129, in format
        message = super(ColoredFormatter, self).format(record)
      File "F:\PortableApps\Python3x\lib\logging\__init__.py", line 571, in format
        s = self.formatMessage(record)
      File "F:\PortableApps\Python3x\lib\logging\__init__.py", line 540, in formatMessage
        return self._style.format(record)
      File "F:\PortableApps\Python3x\lib\logging\__init__.py", line 392, in format
        return self._fmt.format(**record.__dict__)
    KeyError: 'reset'
    Call stack:
      File "test.py", line 11, in <module>
        logger.error('TEST')
    Message: 'TEST'
    Arguments: ()
    
    opened by thorstenkampe 5
  • Installing license file

    Installing license file

    It seems tarball from https://files.pythonhosted.org/packages/source/c/colorlog/colorlog-4.0.0.tar.gz does not install the LICENSE file by default. Could you change it so the license is installed during setup?

    opened by jubalh 4
  • Document `light_*` colors?

    Document `light_*` colors?

    I was trying to figure out how to get the bright colors that Pycharm terminal supports. Took my some time before I released there were undocumented colors, the light_* colors.

    I could adjust the documentation for you if you want to added the light_* colors to the README.md, or did you want to do that, or did you want to just leave it as-is?

    Figured I would open this up, as it would have saved me a bunch of time if they were in the list of colors.

    opened by joshorr 4
Releases(v6.6.0)
  • v6.6.0(Nov 8, 2021)

    https://pypi.org/project/colorlog/6.6.0/

    Changes

    Changes since v6.4.1.

    • Add a force_color option to colorlog.formatter.ColoredFormatter.
    • Support the FORCE_COLOR environment variable.
    Source code(tar.gz)
    Source code(zip)
  • v6.4.1(Aug 23, 2021)

    This is the first proper release in the v6 line!

    PyPI: https://pypi.org/project/colorlog/6.4.1/

    This breaks backwards compatibility in a few ways, most notably dropping support for Python versions older than 3.5. A warning will be displayed if you try to run it on an older version:

    Colorlog requires Python 3.6 or above.
    Pin 'colorlog<5' to your dependencies if you require compatibility with older versions of Python.
    

    This lets colorlog drop some code that was getting very messy to maintain, which made adding and testing new features a slog. Other backwards incompatible changes have mostly been to internals, and some long requested features that have been a bit easier to add now.

    Changes

    Changes since v6.3.0a1.

    • Renamed colorlog.logging to colorlog.wrappers.
    • Import log levels from the logging module (#111).

    Changelog

    Changes since v5.0.0.

    • Dropped support for Python 2 and Python versions below Python 3.5.
    • Added type hints and added mypy to CI (#83).
    • Support 256 colour ANSI codes (#88).
    • Support "light" ANSI codes (#87).
    • Support the NO_COLOR environment variable, and a no_color option (#70).
    • Updated various examples and documentation (#85).
    • Merged TTYColoredFormatter into ColoredFormatter, and ensure no ANSI codes are printed when colors are disabled.
    • Replaced LevelFormatter with a far simpler implementation.
    • Fixed version_info check for the Formatter validate parameter.
    • Define formatMessage instead of format, so that ColoredRecord is used in fewer places.
    • Use setuptool's "normalised" format for the version number.
    • Add PEP 561 typing marker so mypy can find type annotations.
    • Renamed internal modules.
      • colorlog.colorlog is now colorlog.formatter.
      • colorlog.logging is now colorlog.wrappers.
    • Removed colorlog.escape_codes object so that the colorlog.escape_codes module can be imported and used.
    • Import log levels from the logging module (#111).
    Source code(tar.gz)
    Source code(zip)
  • v6.3.0a1(Jun 14, 2021)

    • Rename internal modules. colorlog.colorlog is now colorlog.formatter.
    • Remove colorlog.escape_codes object so that the colorlog.escape_codes module can be imported and used.
    Source code(tar.gz)
    Source code(zip)
  • v6.2.0a1(Jun 14, 2021)

  • v6.1.0a1(Jun 14, 2021)

  • v6.0.0-alpha.2(Apr 13, 2021)

    • Dropped support for Python 2 and Python versions below Python 3.5.
    • Added type hints and added mypy to CI (#83).
    • Support 256 colour ANSI codes (#88).
    • Support "light" ANSI codes (#87).
    • Support the NO_COLOR environment variable, and a no_color option (#70).
    • Updates various examples and documenation (#85).
    • Merged TTYColoredFormatter into ColoredFormatter, and ensure no ANSI codes are printed when colors are disabled.
    • Replaced LevelFormatter with a far simpler implementation.
    • Fixed version_info check for the Formatter validate parameter.
    • Define formatMessage instead of format, so that ColoredRecord is used in fewer places.
    Source code(tar.gz)
    Source code(zip)
  • v5.0.0(Apr 13, 2021)

    This prepares for a v6.0.0 version that breaks backwards compatibility with older Python versions and potentially changes various internals.

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(Dec 14, 2018)

    Breaking change: TTYColoredFormatter requires the stream argument, avoiding checking the wrong stream and still displaying colors when it shouldn't.

    Includes some other minor changes, and attempts to close the last few months worth of minor issues (#54, #62, #64, #65).

    Source code(tar.gz)
    Source code(zip)
  • v3.1.0(Jul 28, 2017)

    This removed the use of parse_colors directly in format strings, as it relied on an implementation specific detail of Python 2 and was broken on Python 3 (i.e. setting __missing__ on an object's __dict__). It also adds some usage examples.

    Source code(tar.gz)
    Source code(zip)
  • 2.7.0(May 24, 2016)

  • v2.4.0(Aug 6, 2014)

  • v2.3.1(Jun 12, 2014)

  • v2.1.0(Feb 20, 2014)

    Adds module level functions that log to the root logger, and sets up a basic coloured logger when those modules are called and no handlers exist (in the same way the logging module does).

    Source code(tar.gz)
    Source code(zip)
  • v2.0.0(Sep 6, 2013)

Outlog it's a library to make logging a simple task

outlog Outlog it's a library to make logging a simple task!. I'm a lazy python user, the times that i do logging on my apps it's hard to do, a lot of

ZSendokame 2 Mar 05, 2022
Lazy Profiler is a simple utility to collect CPU, GPU, RAM and GPU Memory stats while the program is running.

lazyprofiler Lazy Profiler is a simple utility to collect CPU, GPU, RAM and GPU Memory stats while the program is running. Installation Use the packag

Shankar Rao Pandala 28 Dec 09, 2022
This is a key logger based in python which when executed records all the keystrokes of the system it has been executed on .

This is a key logger based in python which when executed records all the keystrokes of the system it has been executed on

Purbayan Majumder 0 Mar 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
A Prometheus exporter for monitoring & analyzing Grafana Labs' technical documentation

grafana-docs-exporter A Prometheus exporter for monitoring & analyzing Grafana Labs' technical documentation Here is the public endpoint.

Matt Abrams 5 May 02, 2022
Python logging package for easy reproducible experimenting in research

smilelogging Python logging package for easy reproducible experimenting in research. Why you may need this package This project is meant to provide an

Huan Wang 20 Dec 23, 2022
Python script to scan log files/system for unauthorized access around system

checkLogs Python script to scan log files/system for unauthorized access around Linux systems Table of contents General info Getting started Usage Gen

James Kelly 1 Feb 25, 2022
A python library used to interact with webots robocup game web logs

A python library used to interact with webots robocup game web logs

Hamburg Bit-Bots 2 Nov 05, 2021
APT-Hunter is Threat Hunting tool for windows event logs

APT-Hunter is Threat Hunting tool for windows event logs which made by purple team mindset to provide detect APT movements hidden in the sea of windows event logs to decrease the time to uncover susp

824 Jan 08, 2023
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
Splunk Add-On to collect audit log events from Github Enterprise Cloud

GitHub Enterprise Audit Log Monitoring Splunk modular input plugin to fetch the enterprise audit log from GitHub Enterprise Support for modular inputs

Splunk GitHub 12 Aug 18, 2022
ClusterMonitor - a very simple python script which monitors and records the CPU and RAM consumption of submitted cluster jobs

ClusterMonitor A very simple python script which monitors and records the CPU and RAM consumption of submitted cluster jobs. Usage To start recording

23 Oct 04, 2021
Monitor and log Network and Disks statistics in MegaBytes per second.

iometrics Monitor and log Network and Disks statistics in MegaBytes per second. Install pip install iometrics Usage Pytorch-lightning integration from

Leo Gallucci 17 May 03, 2022
Json Formatter for the standard python logger

This library is provided to allow standard python logging to output log data as json objects. With JSON we can make our logs more readable by machines and we can stop writing custom parsers for syslo

Zakaria Zajac 1.4k Jan 04, 2023
Fuzzy-logger - Fuzzy project is here Log all your pc's actions Simple and free to use Security of datas !

Fuzzy-logger - ➡️⭐ Fuzzy ⭐ project is here ! ➡️ Log all your pc's actions ! ➡️ Simple and free to use ➡️ Security of datas !

natrix_dev 2 Oct 02, 2022
蓝鲸日志平台(BK-LOG)是为解决分布式架构下日志收集、查询困难的一款日志产品,基于业界主流的全文检索引擎

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

腾讯蓝鲸 102 Dec 22, 2022
HTTP(s) "monitoring" webpage via FastAPI+Jinja2. Inspired by https://github.com/RaymiiOrg/bash-http-monitoring

python-http-monitoring HTTP(s) "monitoring" powered by FastAPI+Jinja2+aiohttp. Inspired by bash-http-monitoring. Installation can be done with pipenv

itzk 39 Aug 26, 2022
Display tabular data in a visually appealing ASCII table format

PrettyTable Installation Install via pip: python -m pip install -U prettytable Install latest development version: python -m pip install -U git+https

Jazzband 924 Jan 05, 2023
A Python package which supports global logfmt formatted logging.

Python Logfmter A Python package which supports global logfmt formatted logging. Install $ pip install logfmter Usage Before integrating this library,

Joshua Taylor Eppinette 15 Dec 29, 2022
Integrates a UPS monitored by NUT into OctoPrint

OctoPrint UPS This OctoPrint plugin interfaces with a UPS monitored by NUT (Network UPS Tools). Requirements NUT must be configured by the user. This

Shawn Bruce 11 Jul 05, 2022