Metadata-Version: 2.1
Name: colorful-logger
Version: 0.0.6
Summary: 
        A colorful logger for python3.        
Home-page: https://github.com/thep0y/python-logger
Author: thepoy
Author-email: thepoy@163.com
License: MIT
Keywords: log logger logging colorful
Platform: UNKNOWN
Description-Content-Type: text/markdown

# python-logger
Colorful logger for python3

## How to use

### Install

```shell
pip install colorful-logger
```

### Usage

#### 1 default logger

You can directly use the default logger, the colored logs will be printed on the terminal, and the default logger level is **warning**.

```python
from colorful_logger import logger

logger.debug("This is a debug message.")
logger.info("This is a info message.")
logger.warning("This is a warning message.")
logger.error("This is a error message.")
logger.fatal("This is a fatal message.")
```

![default logger](https://cdn.jsdelivr.net/gh/thep0y/image-bed/md/1621580826694.png)

#### 2 custom logger

You can also change the log level, save the log to a file, change the logger name, and the log may not be output to the terminal.

```python
from colorful_logger import get_logger
from colorful_logger.logger import DEBUG

logger = get_logger(name="sample_logger", level=DEBUG, file_path="./test.log")

logger.debug("This is a debug message.")
logger.info("This is a info message.")
logger.warning("This is a warning message.")
logger.error("This is a error message.")
logger.fatal("This is a fatal message.")
```

![custom logger](https://cdn.jsdelivr.net/gh/thep0y/image-bed/md/1621653262747.png)

The contents of the log file:

```
[DEBUG] 2021-05-21 15:08:42 test.py:8 - This is a debug message.
[INFO] 2021-05-21 15:08:42 test.py:9 - This is a info message.
[WARNING] 2021-05-21 15:08:42 test.py:10 - This is a warning message.
[ERROR] 2021-05-21 15:08:42 test.py:11 - This is a error message.
[CRITICAL] 2021-05-21 15:08:42 test.py:12 - This is a fatal message.
```

As you can see, the log saved to the file uses the default formatter, so it is not in color.

#### 3 basic config

Use the `basic_logger` function to configure the global logger.

```python
from colorful_logger import basic_logger
from colorful_logger.logger import INFO

basic_logger(level=INFO, show=False, file_path="./test.log")
```

Then all loggers generated in other files will use this configuration.

```python
# a.py
import logging

logger = logging.getLogger("a")

# b.py
import logging

logger = logging.getLogger("b")
```

When the level is set to `DEBUG` or `NOSET`, there may be logs generated by other third-party libraries when using the global configuration.

#### 4 child logger

If you don't want to see the logs generated by third-party libraries, you need to use the `child_logger` method.

```python
from colorful_logger import get_logger
from colorful_logger.logger import DEBUG

# parent logger
logger = get_logger(name="sample_logger", level=DEBUG, file_path="./test.log")

# child logger in other files
from colorful_logger import child_logger

# child1.py
child1 = child_logger("child1", logger)
# child2.py
child2 = child_logger("child2", logger)
# child3.py
child3 = child_logger(__name__, logger)
```

If all loggers in your project have only one parent logger, you can reimplement a chil_logger method.

```python
from colorful_logger import get_logger, child_logger
from colorful_logger.logger import DEBUG

# parent logger
logger = get_logger(name="sample_logger", level=DEBUG, file_path="./test.log")

def my_child_logger(name: str):
    return child_logger(name, logger)

# child1.py
child1 = my_child_logger("child1")
# child2.py
child2 = my_child_logger("child2")
# child3.py
child3 = my_child_logger(__name__)
```



