日志


一、日志的作用:

记录在系统上面进行的操作 记录系统运行状态 出现问题也能很快定位问题

二、日志组件:

1、loggers:日志器
2、handler:处理器
3、formatter:格式器

方法一:封装

复制代码
 1 import logging
 2 
 3 def test_log():
 4     # 创建一个日志器  别的文件使用日志  就用到这个日志器
 5     logger=logging.getLogger()
 6     # 设置日志级别  日志信息输出info以上的级别信息 
 7     logger.setLevel(logging.INFO)
 8     # 创建一个格式器 
 9     fmt='%(asctime)s %(filename)s %(levelname)s  %(funcName)s  %(message)s'
10     formater=logging.Formatter(fmt)
11     # 处理器 Handler  要把日志信息输出到哪
12     # 创建一个输出到控制台的处理器 
13     sh=logging.StreamHandler()
14     # 把设置的日志信息放到控制台中
15     logger.addHandler(sh)
16     # 控制台设置格式器
17     sh.setFormatter(formater)
18 
19     # 在文件里面生成日志信息  创建处理器  文件处理器  处理器的作用:把日志信息输出到指定的位置
20     # 文件处理器创建  日志信息存放在哪
21     fh=logging.FileHandler('log1.log',encoding='utf-8')
22     # 需要把日志信息放到文件处理器里面去
23     logger.addHandler(fh)
24     # 给fh设置格式
25     fh.setFormatter(formater)
26     return logger
复制代码

 

方法二:自定义配置文件log.ini

复制代码
[loggers]
keys=root

[handlers]
keys=fileHandler,streamHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=INFO
handlers=fileHandler,streamHandler

[handler_fileHandler]
class=FileHandler
level=INFO
formatter=simpleFormatter
args=('./mylog.log','a','utf-8')

[handler_streamHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter



[formatter_simpleFormatter]
format=%(asctime)s %(filename)s %(levelname)s  %(funcName)s  %(message)s
复制代码

 

复制代码
import logging
from logging import config


# 这里之所以不直接写入日志的文件的路径,是因为使用日志时候的相对路径的层级不同,会引发报错。
def get_log(path):
    """
    获取日志ini文件
    :param path: 日志文件的相对路径
    :return: 日志类
    """
    logging.config.fileConfig(path)
    return logging.getLogger()
log = get_log(os.path.join(CONFIG_DIR, 'log.ini'))
复制代码

 

posted @   术科术  阅读(30)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示