log日志生成

使用日志记录器层次结构的一般步骤:

  1. 创建根日志记录器:
    在主程序中,首先创建一个根日志记录器。根日志记录器是层次结构的顶层,所有其他的子日志记录器都是从根日志记录器继承和扩展的。
python 复制代码
import logging

logger = logging.getLogger('myapp')
logger.setLevel(logging.DEBUG)

# 设置根日志记录器的处理程序和格式
handler = logging.StreamHandler()
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
  1. 创建子日志记录器:
    在每个子模块或子文件中,创建一个子日志记录器。子日志记录器的名称应该是根日志记录器名称的扩展。
python 复制代码
# script1.py

import logging

logger = logging.getLogger('myapp.script1')

def some_function():
    logger.info("This is a log message from script1.py")
python 复制代码
# script2.py

import logging

logger = logging.getLogger('myapp.script2')

def another_function():
    logger.info("This is a log message from script2.py")
  1. 配置日志输出:
    在主程序中,可以根据需要配置不同层级的日志输出位置和格式。
python 复制代码
# main.py

import logging

# 配置根日志记录器
logging.basicConfig(level=logging.INFO, filename='app.log', filemode='w', format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')

from script1 import some_function
from script2 import another_function

def main():
    some_function()
    another_function()

if __name__ == "__main__":
    main()

在上述示例中,根日志记录器的日志输出被配置为写入到文件app.log中,而子日志记录器的日志输出将继承根日志记录器的配置。

logger = logging.getLogger('myapp'):

创建一个名为'myapp'的日志记录器对象。日志记录器是用于记录日志消息的核心对象。

logger.setLevel(logging.DEBUG):

设置日志记录器的日志级别为DEBUG。这意味着只有DEBUG级别及以上的日志消息才会被记录。可以根据需要调整日志级别,例如DEBUG、INFO、WARNING、ERROR等级别。

handler = logging.StreamHandler():

创建一个处理程序对象,用于处理日志消息。在本例中,创建了一个StreamHandler对象,用于将日志消息输出到标准输出流(stdout)。

formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s %(message)s'):

创建一个格式化器对象,用于定义日志消息的输出格式。在本例中,使用了一个简单的格式,包括日志消息的时间、日志记录器的名称、日志级别和消息内容。

handler.setFormatter(formatter):

将格式化器对象设置到处理程序对象中。这样,在处理程序处理日志消息时,会应用定义的输出格式。

logger.addHandler(handler):

将处理程序对象添加到日志记录器中。通过添加处理程序,可以指定将日志消息发送到何处。在本例中,将日志消息发送到标准输出流(stdout)。

相关推荐
哥本哈士奇(aspnetx)2 小时前
Streamlit + LangChain 1.0 简单实现智能问答前后端
python·大模型
我一定会有钱3 小时前
斐波纳契数列、end关键字
python
小鸡吃米…3 小时前
Python 列表
开发语言·python
星依网络4 小时前
yolov5实现游戏图像识别与后续辅助功能
python·开源·游戏程序·骨骼绑定
大佐不会说日语~5 小时前
Spring AI Alibaba 的 ChatClient 工具注册与 Function Calling 实践
人工智能·spring boot·python·spring·封装·spring ai
2501_921649495 小时前
如何获取美股实时行情:Python 量化交易指南
开发语言·后端·python·websocket·金融
qq_448011165 小时前
python HTTP请求同时返回为JSON的异常处理
python·http·json
棒棒的皮皮5 小时前
【OpenCV】Python图像处理几何变换之翻转
图像处理·python·opencv·计算机视觉
CodeCraft Studio5 小时前
国产化PPT处理控件Spire.Presentation教程:使用Python将图片批量转换为PPT
python·opencv·powerpoint·ppt文档开发·ppt组件库·ppt api
五阿哥永琪6 小时前
Spring Boot 中自定义线程池的正确使用姿势:定义、注入与最佳实践
spring boot·后端·python