dlogger by drawiks
Project description
____ __
/ __ \ / / ____ ____ _ ____ _ ___ _____
/ / / / / / / __ \ / __ `// __ `// _ \ / ___/
/ /_/ / / /___/ /_/ // /_/ // /_/ // __// /
/_____/ /_____/\____/ \__, / \__, / \___//_/
/____/ /____/
📦 installation
pip install dlogger-drawiks
📑 quick start
from dlogger import logger
logger.info("hello, world!")
logger.error("something went wrong")
with configuration:
from dlogger import logger
logger.configure(
level="INFO",
log_file="app.log",
rotation="10MB",
retention="7 days",
compression=True
)
logger.debug("this won't be shown")
logger.info("but this will")
🧩 features
- 🎨 TrueColor output — HEX/RGB support powered by dcolor
- 🚀 high performance — use of buffers and call context caching
- 🧵 thread safety — stability in multithreaded applications thanks to locks
- 💾 write guarantee — automatic buffer reset upon correct program termination
- 📁 smart rotation — by size (
10MB,1GB) or time (1 day,12 hours) - 🗑️ auto cleanup — scheduled deletion of old files (
retention="30 days") - 📦 compression — automatic archiving of old logs to
.gz - 🛠️ minimal dependencies — only dcolor
- ✅ reliability — protection from memory leaks, data loss and deadlocks
- 🏗️ modular architecture — extensible via handlers, formatters and filters
📖 usage
log levels
logger.configure(level="INFO") # DEBUG, INFO, WARNING, ERROR, CRITICAL
size-based rotation
logger.configure(
log_file="app.log",
rotation="10MB" # or "500KB", "1GB"
)
once the file reaches 10MB → app.log.20260216_143022
time-based rotation
logger.configure(
log_file="app.log",
rotation="1 day" # or "12 hours", "1 week"
)
log retention
logger.configure(
log_file="app.log",
retention="7 days" # or "2 weeks", "1 month"
)
logs older than 7 days will be deleted automatically
compression
logger.configure(
log_file="app.log",
rotation="10MB",
compression=True # old logs → .gz
)
full configuration
logger.configure(
level="INFO", # minimum log level
log_file="logs/app.log", # path to log file
show_path=True, # show module:function:
rotation="10MB", # size-based rotation
retention="7 days", # keep logs for 7 days
compression=True # compress old logs
time_format="%H:%M:%S" # time format - 14:30:22
)
💡 examples
simple logging
from dlogger import logger
logger.info("server started on port 8000")
logger.warning("memory usage at 80%")
logger.error("failed to connect to database")
with file
from dlogger import logger
logger.configure(
level="DEBUG",
log_file="app.log"
)
logger.debug("starting request processing")
logger.info("request processed successfully")
for production
from dlogger import logger
logger.configure(
level="INFO",
log_file="logs/production.log",
rotation="50MB",
retention="30 days",
compression=True
time_format="%Y-%m-%d %H:%M:%S"
)
logger.info("application started")
logger.error("critical error in payments module")
extensibility (handlers, formatters, filters)
from dlogger import dLogger, ConsoleHandler, FileHandler, LevelFilter
# create your own logger
my_logger = dLogger()
# add handlers
my_logger.add_handler(ConsoleHandler(level="DEBUG"))
my_logger.add_handler(FileHandler("app.log", rotation="10MB"))
# or use the default logger and add/remove handlers
from dlogger import logger
logger.remove_handler(logger.handlers[0]) # remove console handler
logger.add_handler(FileHandler("debug.log", level="DEBUG"))
multiple loggers
from dlogger import dLogger
# independent loggers for different modules
app_logger = dLogger().configure(level="INFO", log_file="app.log")
db_logger = dLogger().configure(level="DEBUG", log_file="db.log")
app_logger.info("application started")
db_logger.debug("database query executed")
filters (KeywordFilter, ModuleFilter)
from dlogger import logger, KeywordFilter, ModuleFilter, FileHandler
# exclude passwords and tokens from logs
handler = FileHandler("app.log")
handler.add_filter(KeywordFilter(exclude=["password", "token", "secret"]))
logger.add_handler(handler)
# log only specific modules
handler2 = FileHandler("debug.log")
handler2.add_filter(ModuleFilter(modules=["database:", "api:"]))
logger.add_handler(handler2)
📝 log format
console:
2026-02-17 14:09:13 | INFO | src.bot:run: - init
file:
2026-02-17 14:09:13 | INFO | src.main:run: init
2026-02-17 14:09:13 | ERROR | src.main:run: error
📜 license
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
dlogger_drawiks-0.3.3.tar.gz
(13.2 kB
view details)
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 dlogger_drawiks-0.3.3.tar.gz.
File metadata
- Download URL: dlogger_drawiks-0.3.3.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f45bdf2c98753f658b869d8f199010f89e1662b58cbe811040ac85ba728adf03
|
|
| MD5 |
51953399d69cf18206558fd072544056
|
|
| BLAKE2b-256 |
54e4d0ab72a3cd34df151754dc46147b88611f6b27ff3c0dcd4afa0510db5d0c
|
File details
Details for the file dlogger_drawiks-0.3.3-py3-none-any.whl.
File metadata
- Download URL: dlogger_drawiks-0.3.3-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94b6b9a2a5b491fb0d0507f913b905514d2e1ef79962b0b94e1057ac4fd484b4
|
|
| MD5 |
38036788c85688e55fbe1e41c17604ca
|
|
| BLAKE2b-256 |
0f40f8cc15c5de50705049098e3c1e20433976f71684483a428fd83666582c19
|