python 日志模块:logging
很好的博客:python 日志 logging模块(详细解析)
1、仅在控制台打印日志信息
import logging
def add(x, y):
return x + y
if __name__ == "__main__":
logging.basicConfig(
level=logging.INFO, # 过滤器
format='[%(levelname)s] %(message)s') # 格式化日志信息
logger = logging.getLogger(__name__) # 创建一个logger对象
logger.info("Start print log")
sum = add(2, 3)
logger.info(f"sum is {sum}")
logger.info("End print log")
# 控制台输出:
[INFO] Start print log
[INFO] sum is 5
[INFO] End print log
2、仅在日志文件中打印日志信息
import logging
def add(x, y):
return x + y
if __name__ == "__main__":
logging.basicConfig(
filename="log.txt", # 日志文件
level=logging.INFO, # 过滤器
format='[%(levelname)s] %(message)s') # 格式化日志信息
logger = logging.getLogger(__name__) # 创建一个logger对象
logger.info("Start print log")
sum = add(2, 3)
logger.info(f"sum is {sum}")
logger.info("End print log")
# 日志文件 log.txt 内容:
[INFO] Start print log
[INFO] sum is 5
[INFO] End print log
3、同时在控制台和日志文件中打印日志信息
在 logger 中添加 StreamHandler,可以将日志信息输出到控制台上。
import logging
def add(x, y):
return x + y
if __name__ == "__main__":
logging.basicConfig(
filename="log.txt",
level=logging.INFO,
format='[%(levelname)s] %(message)s')
logger = logging.getLogger(__name__)
console = logging.StreamHandler() # 添加控制台日志输出
logger.addHandler(console)
logger.info("Start print log")
sum = add(2, 3)
logger.info(f"sum is {sum}")
logger.info("End print log")
# 控制台输出:
Start print log
sum is 5
End print log
# 日志文件 log.txt 内容:
[INFO] Start print log
[INFO] sum is 5
[INFO] End print log
可以发现此时控制台的日志信息并没有被格式化为指定格式。
转载自:https://juejin.cn/post/7140443077097259022