This is my custom logger
Project description
DM-Logger
Urls
Parameters
Options for creating individual loggers
Parameter | Type | Default Value | Description |
---|---|---|---|
name |
str |
(required) | The name associated with the class instance |
level |
str |
"DEBUG" |
The logging level (e.g., "DEBUG", "INFO") |
write_logs |
bool |
True |
Whether to write logs to a file |
print_logs |
bool |
True |
Whether to print logs to the console |
file_name |
str |
None |
The name of the log file |
Common class parameters for all loggers
Parameter | Type | Default Value | Description |
---|---|---|---|
logs_dir_path |
str |
"logs" |
Path to the directory where the logs will be stored |
file_name |
str |
"main.log" |
The name of the log file |
write_mode |
"a" | "w" |
"w" |
File write mode ('a' for append, 'w' for overwrite) |
max_MB |
int |
5 |
Maximum size of the log file in MB |
max_count |
int |
10 |
Maximum number of log files |
show_name_label |
bool |
True |
Whether to display the name label in log entries |
show_location_label |
bool | "auto" |
"auto" |
Whether to display the location label in log entries |
format_string |
str |
None |
The format string of the log |
Usage
Setup class config
This config usage for all loggers
from dm_logger import DMLogger
DMLogger.config.show_name_label = False
DMLogger.config.max_count = 5
Record
from dm_logger import DMLogger
logger = DMLogger("main")
logger.info("test message", tag="test tag")
logger.debug("new message", id=123312)
logger.info("only mess")
logger.critical(env="production")
logger.warning({"key": "value"})
logger.error(["item1", "item2", 3])
logger.info()
Output
19-11-2023 00:49:03.406 [INFO] {tag: 'test tag'} -- test message
19-11-2023 00:49:03.406 [DEBUG] {id: 123312} -- new message
19-11-2023 00:49:03.407 [INFO] -- only mess
19-11-2023 00:49:03.407 [CRITICAL] (test.<module>:8) {env: 'production'}
19-11-2023 00:49:03.408 [WARNING] -- {'key': 'value'}
19-11-2023 00:49:03.408 [ERROR] (test.<module>:10) -- ['item1', 'item2', 3]
19-11-2023 00:49:03.409 [INFO]
Several loggers
All loggers will write to one file
from dm_logger import DMLogger
logger = DMLogger("main", level="INFO")
logger2 = DMLogger("only_file", print_logs=False)
logger.info("Start app")
logger2.debug(process_id=123123)
logger.error("App crashed!")
Output
19-11-2023 00:56:36.879 [INFO] [main] -- Start app
19-11-2023 00:56:36.880 [ERROR] [main] (test.<module>:10) -- App crashed!
Log file
19-11-2023 00:56:36.879 [INFO] [main] -- Start app
19-11-2023 00:56:36.880 [DEBUG] [only_file] {process_id: 123123}
19-11-2023 00:56:36.880 [ERROR] [main] (test.<module>:10) -- App crashed!
Requirements
Python 3.8 or higher.
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
dm_logger-0.5.3.tar.gz
(4.6 kB
view details)
Built Distribution
File details
Details for the file dm_logger-0.5.3.tar.gz
.
File metadata
- Download URL: dm_logger-0.5.3.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 805df03aca576b13f6978a34ebcf06a1b5a33eacd880a2cc126f1e9b1529c735 |
|
MD5 | fef9f5cd01471e08a4c5285987ea8c51 |
|
BLAKE2b-256 | a4078dc94dc4f8f1d552a88b5d67ca411f859fa928a40fd8180b9b4dfe3ebcfb |
File details
Details for the file dm_logger-0.5.3-py3-none-any.whl
.
File metadata
- Download URL: dm_logger-0.5.3-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 46583e095381bb80f41c12f6f3a05212ade9823c96899bf29e17c4ac29527fd2 |
|
MD5 | 697db621438de15428f28552f7cc9545 |
|
BLAKE2b-256 | e49d2a5b38e78700550658007c2d14e75d04300b7c96cbc0f9e139368c1721ab |