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 options 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")
debugger = DMLogger("debugger", print_logs=False)
logger.info("Start app")
debugger.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] [debugger] {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.4.3.tar.gz
(4.6 kB
view hashes)
Built Distribution
Close
Hashes for dm_logger-0.4.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17375aafd03191ad49de688af030e6f380508b067227411423e5728509683f2e |
|
MD5 | 87aa34546f165c8ade3001b8460e9182 |
|
BLAKE2b-256 | bc3d2ca5748887348a8a7cbcf3b769b40d74347173fccf2affd28c64ccb0dbda |