# DM-Logger
## Urls
* [PyPI](https://pypi.org/project/dm-logger/)
* [GitHub](https://github.com/MykhLibs/dm-logger)
## 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_
```python
from dm_logger import DMLogger
DMLogger.config.show_name_label = False
DMLogger.config.max_count = 5
```
### Record
```python
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
```textmate
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_
```python
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
```textmate
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
```textmate
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.
Raw data
{
"_id": null,
"home_page": "https://pypi.org/project/dm-logger",
"name": "dm-logger",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "dm-logger",
"author": "dimka4621",
"author_email": "mismartconfig@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/a4/07/8dc94dc4f8f1d552a88b5d67ca411f859fa928a40fd8180b9b4dfe3ebcfb/dm_logger-0.5.3.tar.gz",
"platform": null,
"description": "# DM-Logger\n\n## Urls\n\n* [PyPI](https://pypi.org/project/dm-logger/)\n* [GitHub](https://github.com/MykhLibs/dm-logger)\n\n## Parameters\n\n### _Options for creating individual loggers_\n\n| Parameter | Type | Default Value | Description |\n|--------------|--------|---------------|---------------------------------------------|\n| `name` | `str` | (required) | The name associated with the class instance |\n| `level` | `str` | `\"DEBUG\"` | The logging level (e.g., \"DEBUG\", \"INFO\") |\n| `write_logs` | `bool` | `True` | Whether to write logs to a file |\n| `print_logs` | `bool` | `True` | Whether to print logs to the console |\n| `file_name` | `str` | `None` | The name of the log file |\n\n### _Common class parameters for all loggers_\n\n| Parameter | Type | Default Value | Description |\n|-----------------------|------------------|----------------|------------------------------------------------------|\n| `logs_dir_path` | `str` | `\"logs\"` | Path to the directory where the logs will be stored |\n| `file_name` | `str` | `\"main.log\"` | The name of the log file |\n| `write_mode` | `\"a\" \\| \"w\"` | `\"w\"` | File write mode ('a' for append, 'w' for overwrite) |\n| `max_MB` | `int` | `5` | Maximum size of the log file in MB |\n| `max_count` | `int` | `10` | Maximum number of log files |\n| `show_name_label` | `bool` | `True` | Whether to display the name label in log entries |\n| `show_location_label` | `bool \\| \"auto\"` | `\"auto\"` | Whether to display the location label in log entries |\n| `format_string` | `str` | `None` | The format string of the log |\n\n## Usage\n\n### Setup class config\n\n_This config usage for all loggers_\n\n```python\nfrom dm_logger import DMLogger\n\nDMLogger.config.show_name_label = False\nDMLogger.config.max_count = 5\n```\n\n### Record\n\n```python\nfrom dm_logger import DMLogger\n\nlogger = DMLogger(\"main\")\n\nlogger.info(\"test message\", tag=\"test tag\")\nlogger.debug(\"new message\", id=123312)\nlogger.info(\"only mess\")\nlogger.critical(env=\"production\")\nlogger.warning({\"key\": \"value\"})\nlogger.error([\"item1\", \"item2\", 3])\nlogger.info()\n```\n\nOutput\n\n```textmate\n19-11-2023 00:49:03.406 [INFO] {tag: 'test tag'} -- test message\n19-11-2023 00:49:03.406 [DEBUG] {id: 123312} -- new message\n19-11-2023 00:49:03.407 [INFO] -- only mess\n19-11-2023 00:49:03.407 [CRITICAL] (test.<module>:8) {env: 'production'}\n19-11-2023 00:49:03.408 [WARNING] -- {'key': 'value'}\n19-11-2023 00:49:03.408 [ERROR] (test.<module>:10) -- ['item1', 'item2', 3]\n19-11-2023 00:49:03.409 [INFO]\n```\n\n### Several loggers\n\n_All loggers will write to one file_\n\n```python\nfrom dm_logger import DMLogger\n\nlogger = DMLogger(\"main\", level=\"INFO\")\nlogger2 = DMLogger(\"only_file\", print_logs=False)\n\nlogger.info(\"Start app\")\nlogger2.debug(process_id=123123)\nlogger.error(\"App crashed!\")\n```\n\nOutput\n\n```textmate\n19-11-2023 00:56:36.879 [INFO] [main] -- Start app\n19-11-2023 00:56:36.880 [ERROR] [main] (test.<module>:10) -- App crashed!\n```\n\nLog file\n\n```textmate\n19-11-2023 00:56:36.879 [INFO] [main] -- Start app\n19-11-2023 00:56:36.880 [DEBUG] [only_file] {process_id: 123123}\n19-11-2023 00:56:36.880 [ERROR] [main] (test.<module>:10) -- App crashed!\n```\n\n## Requirements\n\nPython 3.8 or higher.\n",
"bugtrack_url": null,
"license": null,
"summary": "This is my custom logger",
"version": "0.5.3",
"project_urls": {
"GitHub": "https://github.com/MykhLibs/dm-logger",
"Homepage": "https://pypi.org/project/dm-logger"
},
"split_keywords": [
"dm-logger"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e49d2a5b38e78700550658007c2d14e75d04300b7c96cbc0f9e139368c1721ab",
"md5": "697db621438de15428f28552f7cc9545",
"sha256": "46583e095381bb80f41c12f6f3a05212ade9823c96899bf29e17c4ac29527fd2"
},
"downloads": -1,
"filename": "dm_logger-0.5.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "697db621438de15428f28552f7cc9545",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 5934,
"upload_time": "2024-09-07T21:22:47",
"upload_time_iso_8601": "2024-09-07T21:22:47.281868Z",
"url": "https://files.pythonhosted.org/packages/e4/9d/2a5b38e78700550658007c2d14e75d04300b7c96cbc0f9e139368c1721ab/dm_logger-0.5.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a4078dc94dc4f8f1d552a88b5d67ca411f859fa928a40fd8180b9b4dfe3ebcfb",
"md5": "fef9f5cd01471e08a4c5285987ea8c51",
"sha256": "805df03aca576b13f6978a34ebcf06a1b5a33eacd880a2cc126f1e9b1529c735"
},
"downloads": -1,
"filename": "dm_logger-0.5.3.tar.gz",
"has_sig": false,
"md5_digest": "fef9f5cd01471e08a4c5285987ea8c51",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 4649,
"upload_time": "2024-09-07T21:22:49",
"upload_time_iso_8601": "2024-09-07T21:22:49.740483Z",
"url": "https://files.pythonhosted.org/packages/a4/07/8dc94dc4f8f1d552a88b5d67ca411f859fa928a40fd8180b9b4dfe3ebcfb/dm_logger-0.5.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-07 21:22:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MykhLibs",
"github_project": "dm-logger",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "dm-logger"
}