文章目录
- 一、使用loguru
- 1、安装
- 2、简单使用
- 3、详细使用
- 4、工具类
- (1)logUtil.py
- (2)测试类
- (3)效果
- 参考资料
一、使用loguru
1、安装
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')
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
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')
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
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
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
(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()
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
(3)效果
参考资料
官网:https://loguru.readthedocs.io/en/stable/index.html