文章目录
- 一、使用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')
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)效果
参考资料
官网:https://loguru.readthedocs.io/en/stable/index.html