Python之代码片段-日志功能

简介: 这是一段Python日志配置代码,实现分级日志输出:控制台仅显示INFO及以上级别,文件按天轮转并保留7天,支持DEBUG级全记录。附带简洁调用示例,便于快速集成到服务项目中。

代码

import logging
import os
from logging.handlers import TimedRotatingFileHandler


def setup_logger(log_path: str, file_name: str = "server.log"):
    # 创建 Logger 实例
    log = logging.getLogger('server-logger')
    log.setLevel(logging.DEBUG)  # 设置全局最低日志级别
    # 避免重复添加 Handler(防止重复日志)
    if log.handlers:
        return log
    # 定义日志格式
    formatter = logging.Formatter(
        '%(asctime)s %(levelname)s thread[%(thread)d] %(module)s.%(funcName)s:%(lineno)d -> %(message)s'
    )
    # 控制台 Handler(输出到终端)
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.INFO)  # 控制台只输出 INFO 及以上级别
    console_handler.setFormatter(formatter)
    log.addHandler(console_handler)
    # 按日期切割的 File Handler(输出到文件)
    filename = f"{log_path}/{file_name}"
    file_handler = TimedRotatingFileHandler(
        filename=filename,
        when='midnight',  # 每天午夜切割
        interval=1,  # 间隔1天
        backupCount=7,  # 保留7天日志
        encoding='utf-8'
    )
    file_handler.setLevel(logging.INFO)  # 文件记录所有 DEBUG 及以上级别
    file_handler.setFormatter(formatter)
    log.addHandler(file_handler)
    return log


# 获取当前目录的上一级目录下,的logs文件夹路径
config_path = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "logs")
# 查询日志目录是否存在,不存在创建
os.makedirs(config_path, exist_ok=True)
logger = setup_logger(config_path, "server.log")


if __name__ == '__main__':
    logger.debug('This is a debug message')
    logger.info('This is an info message')
    logger.warning('This is a warning message')
    logger.error('This is an error message')

示例

from manager.LoggerManager import logger

if __name__ == '__main__':
    logger.debug('This is a debug message')
    logger.info('This is an info message')
    logger.warning('This is a warning message')
    logger.error('This is an error message')
相关文章
|
4月前
|
对象存储 Python
Python之DeepAgents自动摘要触发
DeepAgents是基于LangChain的智能体框架,核心特性之一为自动摘要功能:当上下文超长导致模型报错时,自动触发摘要压缩,再重试推理。需显式设置`max_input_tokens`参数启用,支持流式输出摘要日志。
444 3
|
2月前
|
数据采集 人工智能 数据挖掘
一个人如何完成一个部门的工作?AI智能体工作流搭建教程
本文详解如何用AI智能体搭建“一人部门”工作流:将运营、客服、销售等岗位工作拆解为五层流程(目标→输入→处理→审核→输出→复盘),结合知识库、4类核心智能体、低代码编排工具与人工审核机制,实现可复用、可迭代的自动化协作。零基础也能3天跑通。
|
2月前
|
人工智能 分布式计算 关系型数据库
2026阿里云服务器价格解析:最低38元1年起,热门实例活动价格与选购指南参考
2026年阿里云服务器价格参考:轻量应用服务器2核2G抢购价低至38元/年,2核4G为9.9元/月起;经济型e实例99元/年、u1实例199元/年,均支持新购续费同价;通用算力型u2i实例包年3折起,第九代企业级实例(c9i/g9i/r9i)低至6.4折。本文还按业务场景给出选购建议:轻量级应用选轻量/e实例,成长型企业选u2i,高性能计算选九代实例,并强调通过领券、抢购活动等可进一步降低成本。
|
2月前
|
人工智能 编解码 安全
一站式AI视频翻译的技术架构:ASR→NMT→TTS→字幕压制的全链路设计
本文提出一套可落地的AI视频翻译系统架构,强调构建稳定、可追踪的数据管线而非简单串联模型。全链路分为输入、ASR、说话人分离、NMT、TTS、后处理和任务编排7层,以带时间轴/角色/状态的segment为核心数据结构,确保时间轴精准、声音不串、成品直发,专为出海、课程本地化与短剧翻译等场景优化。
|
2月前
|
人工智能 分布式计算 安全
阿里云大数据 AI 平台 Skills 合集
阿里云大数据 AI 平台 Agent Skills(简称 Skills)是阿里云大数据 AI 平台官方提供的 AI Agent 技能发现与安装平台,为 Agent 提供安全、可靠的云资源操作能力,本文汇总阿里云大数据 AI 平台 Skills,帮助用户快速导航。
|
2月前
|
SQL 人工智能 安全
AI智能问数实现:Text2SQL与图表生成全链路解析
本文详解向量空间JBoltAI平台智能问数(DataChat)技术实践:覆盖Text2SQL、五层SQL安全校验(AST解析+fail-closed)、多源并发查询、两阶段图表生成(ECharts)及四层防死循环机制,实现自然语言查数据、出图表的稳定生产落地。
人工智能 运维 Cloud Native
436 0
|
2月前
|
机器学习/深度学习 人工智能 算法
图解人工智能的数学基础(高数)
本文系统讲解微积分核心概念:数列与递推、极限(含无穷小/大)、导数(含中值定理、泰勒公式)、积分(不定/定/变上限/反常)及微分方程,并延伸至多元函数、偏导数、链式法则与二重积分,结合Sigmoid函数、药物衰减等实例及SymPy代码演示,突出其在AI与工程中的应用基础。
327 5
|
2月前
|
JSON 缓存 人工智能
【剪映小助手】媒体处理接口
CapCut Mate 是基于 FastAPI 的剪映自动化媒体处理接口,支持视频、音频、图片、贴纸的批量添加与轨道管理,提供草稿创建/保存/获取及标准化错误处理,助力高效、可控的AI视频编辑流程。(239字)
|
3月前
|
存储 弹性计算 小程序
阿里云最便宜云服务器怎么选?38元/99元/199元机型性能全解析
阿里云推出38元/年、99元/年、199元/年三档高性价比云服务器,分别面向个人开发者、小微初创及中小企业。本文从配置、实测性能与适用场景三维度深度对比,助力大家轻松选择低成本上云!
780 4

热门文章

最新文章