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
| from loguru import logger
# 添加log
logger.debug("That's it, beautiful and simple logging!")
# handler, 设置处理方式
logger.add(sys.stderr, format="{time} {level} {message}", filter="my_module", level="INFO")
logger.add("file_{time}.log")
# 写入文件方式
logger.add("file_1.log", rotation="500 MB") # Automatically rotate too big file
logger.add("file_2.log", rotation="12:00") # New file is created each day at noon
logger.add("file_3.log", rotation="1 week") # Once the file is too old, it's rotated
logger.add("file_X.log", retention="10 days") # Cleanup after some time
logger.add("file_Y.log", compression="zip") # Save some loved space
# 类似 format 的格式
logger.info("If you're using Python {}, prefer {feature} of course!", 3.6, feature="f-strings")
# context 形式捕捉 log
@logger.catch
def my_function(x, y, z):
# An error? It's caught anyway!
return 1 / (x + y + z)
# 支持 html 标签格式化
logger.add(sys.stdout, colorize=True, format="<green>{time}</green> <level>{message}</level>")
# 为 backtrace 异常调用栈,单独设置 log handler
logger.add("out.log", backtrace=True, diagnose=True) # Caution, may leak sensitive data in prod
|