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)。

相关推荐
databook9 分钟前
Pandas 与 Polars:语法、性能和资源占用方面的对比
python·数据分析·pandas
威哥爱编程15 分钟前
Python 智能体开发实战 10:本地跑得好好的,一并发就崩?把它做成一个能上线的服务
python·agent
威哥爱编程20 分钟前
Python 智能体开发实战 09:改了提示词,到底是变好还是变坏?搭一套能打分的离线评测
python·agent
meiying88381 小时前
多快递公司快递单号批量查询接口怎么对接?Python 聚合查询实现
java·大数据·python
Hello_Pyhx1 小时前
Deep-Live-Cam 源码配置思路:环境、模型与执行后端分开排查
python
张张123y1 小时前
后端第十六课:Multi-Agent 多智能体(让多个 Agent 分工协作)
大数据·数据库·人工智能·python·deepseek·dsh·agent 框架
全栈练习生2 小时前
大规模智能体仿真
python·ai
code2cat2 小时前
【随笔】vLLM前缀缓存:相同的开头怎样少算一次
人工智能·python·缓存·vllm
陈飞EXCEL2 小时前
北京杰飞 IT 旗下妙码生花少儿Python编程上线两大学习系统
开发语言·python·学习
Anesthesia丶3 小时前
基于 Qwen3-TTS 的多语言智能配音 Web 应用(Qwen3 TTS Studio)
python·ai·qwen-tts·agci