Simple, performant logging with ANSI colors for Python.
Project description
ezlog
Simple, performant logging with ANSI colors for Python.
Published on PyPI as ezlog-py.
- 6 levels:
debug,info,success,warn,error,critical - Short aliases:
d,i,s,w,e,c - ANSI colors: full palette
- Stdlib integration: creating an EzLog wires it to stdlib logging automatically
- Zero dependencies
Install
pip install ezlog-py
Usage
Create a logger; it wires itself to stdlib logging. Use log.i(), log.success(), and anywhere logging.info() / logger.error() also go through ezlog:
from ezlog import EzLog
log = EzLog() # or EzLog({"useColors": True, "timestamp": False})
# Direct ezlog (includes .success() level)
log.success("Application started")
log.i("Hello")
log.w("Oops")
log.e("OMG")
log.d("hmmm..")
# Stdlib logging (wired internally; same formatting)
import logging
logging.info("From stdlib")
logging.error("Failed", exc_info=True)
Configuration
# Example: custom config (partial overrides)
log = EzLog({
"useColors": True,
"useLevels": True,
"useSymbols": False,
"textColor": "white",
"bracesColor": "light-white",
"timestamp": {
"color": "white",
"format": "%Y-%m-%d %H:%M:%S",
},
"levels": {
"info": {"text": "Information"},
"debug": isDevelopment, # disable debug in production
"critical": False, # or disable a level entirely
},
})
Each option has a default and is optional.
- useColors : boolean – Enable ANSI colors. Default
True. - useLevels : boolean – Show level label/symbol in output. Default
True. - useSymbols : boolean – Use symbol for level (if
False, use text label). DefaultTrue. - textColor :
LogColors– define text color (e.g."light-red","cyan"). Defaultwhite. - bracesColor :
LogColors– define braces color (e.g."light-red","cyan"). Defaultlight-white. - timestamp :
TimestampConfigorFalse– Configure timestamp, or set toFalseto disable. - levels :
LevelsConfig– Keys:debug,info,success,warn,error,critical. Each value is aLevelConfig(partial override) orFalseto disable that level.
LevelConfig
- color :
LogColors– Level color (e.g."light-red","cyan"). - text : str – Level label (e.g.
"INFO","Error"). - symbol : str – Level symbol; validated with a safe fallback when the system doesn’t support the character.
TimestampConfig
- format : str – strftime format (e.g.
"%Y-%m-%d %H:%M:%S"). Default fromezlog.defaults.DEFAULT_TIMESTAMP_FORMAT. - color :
LogColorsor"as_levels"– Timestamp color."as_levels"uses the same color as the log level. Default"as_levels".
Module / contextual segments
You can create logger "views" with additional prefixed segments, useful to tag modules, subsystems, or request scopes, without reconfiguring the global logger:
from ezlog import EzLog, add_segments
base_log = EzLog({"useColors": True, "timestamp": {"color": "as_levels"}})
# Per-module logger (LogicModule)
logic_log = base_log.with_segments([
{"text": "LogicModule", "color": "as_levels"},
])
# Or using the helper function:
api_log = add_segments(base_log, [
{"text": "API", "color": "as_levels"},
])
logic_log.i("message from logic module")
api_log.i("message from API layer")
Output example:
[2026-03-12 11:36:28] [LogicModule] [i] message from logic module
[2026-03-12 11:36:29] [API] [i] message from API layer
Segments use the same color system as timestamps: "color": "as_levels" reuses the level color, or you can pass any LogColors value.
Levels
- Order (severity):
debug→info→success→warn→error→critical. - Short aliases:
d,i,s,w,e,c. - Stdlib mapping:
logging.DEBUG→ debug,logging.INFO→ info,logging.WARNING→ warn,logging.ERROR→ error,logging.CRITICAL→ critical.NOTSETis skipped. - Default symbols and colors are in
ezlog.defaults(DEFAULT_TEXTS,DEFAULT_COLORS,DEFAULT_SYMBOLS_FALLBACK).
Color properties
When useColors is enabled, the logger exposes:
| Standard colors | Light colors |
|---|---|
log.red |
log.light_red |
log.yellow |
log.lyellow |
log.cyan |
log.lcyan |
log.green |
log.lgreen |
log.magenta |
log.lmagenta |
log.blue |
log.lblue |
log.white |
log.lwhite |
log.black |
|
log.gray |
Use them for custom formatted output; end colored segments with log.reset.
Exports
- EzLog(config?) – Create logger (wires to stdlib on construction). Config optional:
EzLog()orEzLog({"useColors": True, "timestamp": False}). - Types –
LogLevel,LogColors,TimestampColor,TimestampConfig,SegmentConfig,EzlogConfig,LevelsConfig,LevelConfig,LogArgs,ConsoleMethod. - Constants (from
ezlog.defaults) –COLOR_CODES,RESET,DEFAULT_SYMBOLS_FALLBACK,DEFAULT_TEXTS,DEFAULT_COLORS,DEFAULT_TIMESTAMP_FORMAT,DEFAULT_TIMESTAMP_COLOR,DEFAULT_TIMESTAMP.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ezlog_py-1.0.8.tar.gz.
File metadata
- Download URL: ezlog_py-1.0.8.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92e4ac315032b4f64e846f87f5c3773d0d1a8a0a8a8213bafb931b92823bcdb9
|
|
| MD5 |
237d56177083f3befebe1f238526c5e8
|
|
| BLAKE2b-256 |
7cbccfb5033ac543efc5bcab71d680cbaa2683792d3d477a24d1133aeb3135c9
|
File details
Details for the file ezlog_py-1.0.8-py3-none-any.whl.
File metadata
- Download URL: ezlog_py-1.0.8-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d19fc00ef3688e4d2d40d19ec606f9d9d5fd012d2edc94a459455cd274762cf1
|
|
| MD5 |
e30b5193daf25716d7661d57d3c64f41
|
|
| BLAKE2b-256 |
6ed5e8da7dd31d2ae1fa64a03d7d0dd27ac133c8d7f79d743ff938892eb3e74a
|