文章目录

  • 一、使用loguru
  • 1、安装
  • 2、简单使用
  • 3、详细使用
  • 4、工具类
  • (1)logUtil.py
  • (2)测试类
  • (3)效果
  • 参考资料


一、使用loguru

1、安装

pip install loguru

2、简单使用

from loguru import logger

# 打印到文件 + 控制台
logger.add('myloguru.log')

logger.debug('hello, this debug loguru')
logger.info('hello, this is info loguru')
logger.warning('hello, this is warning loguru')
logger.error('hello, this is error loguru')
logger.critical('hello, this is critical loguru')

python日志记录工具:loguru日志库使用_python

3、详细使用

import sys

from loguru import logger

logger.configure(handlers=[
    # 打印到控制台,sys.stderr表示控制台
    {
        "sink": sys.stderr,
        "format": "{time:YYYY-MM-DD HH:mm:ss.SSS} |<lvl>{level:8}</>| {name} : {module}:{line:4} | <cyan>{extra[module_name]}</> | - <lvl>{message}</>",
        "colorize": True
    },
    # 输出到文件,文件名app.log
    {
        "sink": 'app.log',
        "format": "{time:YYYY-MM-DD HH:mm:ss.SSS} |{level:8}| {name} : {module}:{line:4} | {extra[module_name]} | - {message}",
        "colorize": False,
        "rotation":"500 MB",
        "compression":"zip"
    },
])

# logger.add("file_1.log", rotation="500 MB")  # 自动循环过大的文件
# logger.add("file_2.log", rotation="12:00")  # 每天中午创建新文件
# logger.add("file_3.log", rotation="1 week")  # 一旦文件太旧进行循环
# logger.add("file_X.log", retention="10 days")  # 定期清理
# logger.add("file_Y.log", compression="zip")  # 压缩节省空间


# 指定module_name,不同模块会打印模块名
logger = logger.bind(module_name='module1')

logger.debug('this is debug')
logger.info('this is info')
logger.warning('this is warning')
logger.error('this is error')
logger.critical('this is critical')

for i in range(9999):
    logger.debug('this is debug')

4、工具类

(1)logUtil.py

import sys

from loguru import logger


def getLogger():
    logger.configure(handlers=[
        # 打印到控制台,sys.stderr表示控制台
        {
            "sink": sys.stderr,
            "format": "{time:YYYY-MM-DD HH:mm:ss.SSS} |<lvl>{level:8}</>| {name} : {module}.{function}:{line:4} | <cyan>{extra[module_name]}</> | - <lvl>{message}</>",
            "colorize": True
        },
        # 输出到文件,文件名app.log
        {
            "sink": 'app1.log',
            "format": "{time:YYYY-MM-DD HH:mm:ss.SSS} |{level:8}| {name} : {module}.{function}:{line:4} | {extra[module_name]} | - {message}",
            "colorize": False,
            "rotation": "500 MB",
            "compression": "zip"
        },
    ])

    return logger

(2)测试类

import logUtil

# 指定module_name,不同模块会打印模块名
logger = logUtil.getLogger().bind(module_name='module1')


def printLog():
    logger.debug('this is debug')
    logger.info('this is info')
    logger.warning('this is warning')
    logger.error('this is error')
    logger.critical('this is critical')


if __name__ == '__main__':
    printLog()

(3)效果

python日志记录工具:loguru日志库使用_参考资料_02

参考资料

官网:https://loguru.readthedocs.io/en/stable/index.html