python logging

Python标准模块logging 开发Python, 一直以来都是使用自己编写的logging模块. 比较土...... 今天发现python的标准模块的这个功能做的挺好, 记录一下, 以后使用模块来进行logging. 对于这个模块的介绍网上也很多, 我也不用自己写了, 比较好的如下, http://crazier9527.iteye.com/blog/290018    Python的标准logging模块 http://blog.endlesscode.com/2010/06/03/python-logging-module/   P 阅读详情

每个 Python 程序员都要知道的日志实践

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
'''
CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET

如果这里设置为logger.setLevel(logging.ERROR)
那么下面代码中输出的info.log和warn.log都是空的
'''



# create a file handler
handler_info = logging.FileHandler('info.log')
handler_info.setLevel(logging.INFO)
# create a logging format
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler_info.setFormatter(formatter)
# add the handlers to the logger
logger.addHandler(handler_info)


# create a file handler
handler_warn = logging.FileHandler('warn.log')
handler_warn.setLevel(logging.WARNING)
# create a logging format
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler_warn.setFormatter(formatter)
# add the handlers to the logger
logger.addHandler(handler_warn)



logger.info('info baby')
logger.warning('warning baby')

'''
CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET

results:
warn.log:
2018-05-10 10:25:12,148 - __main__ - WARNING - warning baby


info.log:
2018-05-10 10:25:12,148 - __main__ - INFO - info baby
2018-05-10 10:25:12,148 - __main__ - WARNING - warning baby

'''

http://nodeca.github.io/js-yaml/

这是一个yaml转换为json的在线demo

version: 1
disable_existing_loggers: False
formatters:
    simple:
        format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
handlers:
    console:
        class: logging.StreamHandler
        level: DEBUG
        formatter: simple
        stream: ext://sys.stdout
    info_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: INFO
        formatter: simple
        filename: info.log
        maxBytes: 10485760 # 10MB
        backupCount: 20
        encoding: utf8
    error_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: ERROR
        formatter: simple
        filename: errors.log
        maxBytes: 10485760 # 10MB
        backupCount: 20
        encoding: utf8
loggers:
    my_module:
        level: ERROR
        handlers: [console]
        propagate: no
root:
    level: INFO
    handlers: [console, info_file_handler, error_file_handler]

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import logging
import os
import logging.config
import yaml


def setup_logging(
        default_path='logging.yaml',
        default_level=logging.INFO,
        env_key='LOG_CFG'):
    """Setup logging configuration
    """
    path = default_path
    value = os.getenv(env_key, None)
    if value:
        path = value
    if os.path.exists(path):
        with open(path, 'rt') as f:
            config = yaml.load(f.read())
        logging.config.dictConfig(config)
    else:
        logging.basicConfig(level=default_level)


setup_logging(default_path="logging.yaml")

logger = logging.getLogger("deepwalk")

logger.warning("I love you")

简单的将日志打印到屏幕

import logging

logging.debug('This is debug message')
logging.info('This is info message')
logging.warning('This is warning message')

屏幕上打印:
WARNING:root:This is warning message

默认情况下,logging将日志打印到屏幕,日志级别为WARNING;
日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别。

通过logging.basicConfig函数对日志的输出格式及方式做相关配置

【Python】logging 在软件开发中,日志(logging)是不可或缺的组成部分。它不仅仅是简单地打印信息到控制台,更是软件运行状态、异常、性能瓶颈以及业务流程的关键“黑匣子记录”。想象一下,一个复杂的分布式系统在生产环境中出现问题,如果没有详尽的日志,排查问题将如同大海捞针。日志,就是系统运行轨迹的画像,是故障诊断、性能优化、安全审计甚至业务分析的基石。初学者在Python中输出信息时,最常使用的是内置的 函数。然而, 在生产环境中是远远不够的,甚至可能成为问题的根源。让我们先看看 的局限性:为了克服 的这些局限,日志系统 阅读详情

相关推荐

Python中logging模块的基本用法

本文首发于:行者AI 在开发项目时,我们不可能将所有的信息都打印在控制台中。我们可以使用Python标准库提供的logging API来处理。相比print,logging模块提供了许多强大而灵活的功能。比如:可以通过设置不同的日志等级,只输出重要信息,而不必显示大量的调式信息;print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其他数据,而logging则可以由开发者决定将信息输出到什么地方,以及怎么输出。 1. logging模块基本信息 1.1 日志等级 logging函数默认定.

行者AI 2068

Python logging日志模块+读取配置文件

1配置文件config.ini  [log] level=INFO filepath=./log logname=run.log [master] ip=127.0.0.1 port=8080 2.读取配置文件config_base.py #!/usr/bin/env python # -*- coding: utf-8 -*- import ConfigParser class ...

asl_12138的博客 3850

Python日志库logging总结

上面的基本使用可以让我们快速上手 logging 模块,但一般并不能满足实际使用,我们还需要自定义 Logger。一个系统只有一个 Logger 对象,并且该对象不能被直接实例化,没错,这里用到了单例模式,获取 Logger 对象的方法为getLogger。注意:这里的单例模式并不是说只有一个 Logger 对象,而是指整个系统只有一个根 Logger 对象,Logger 对象在执行 info()、error() 等方法时实际上调用都是根 Logger 对象对应的 info()、error() 等方法。

wjianwei666的专栏 1344

python3- logging RotatingFileHandler 简单用法与总结

1 code #!coding:utf-8 import logging import os from config import LOG_NAME from logging.handlers import RotatingFileHandler logfile="{0}/logs/{1}".format(os.path.abspath('.'),LOG_NAME) def_format...

C2575的博客 9053

ESP32-S3 SPI接口实战:从引脚分配到高速通信配置

本文详细解析了ESP32-S3的SPI接口配置与高速通信优化技巧,从引脚分配到软件配置,再到DMA传输和时钟优化,帮助开发者快速掌握SPI通信技术。特别针对ESP32-S3的SPI2接口进行了实战演示,包括硬件连接和常见问题排查,适用于各类嵌入式开发项目。

weixin_29189373的博客 679

Mplus—随机截距交叉滞后模型(Random Intercepts Cross-Lagged Panel Model, RI-CLPM)

介绍随机截距交叉滞后模型(Random Intercepts Cross-Lagged Panel Model, RI-CLPM)的相关知识,例如模型内容、Mplus语法及对应网址等。

m0_54401011的博客 9533

python logging类库中RotatingFileHandler的使用

日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET,当然也可以自己定义日志级别。 日志回滚的意思为:比如日志文件是chat.log,当chat.log达到指定的大小之后,RotatingFileHandler自动把文件改名为chat.log.1。不过,如果chat.log.1已经存在,会先把chat.log.1重命名为chat

chpllp的博客 9346

告别混乱!在Unity中为Best MQTT v3设计清晰的服务层:配置、连接、订阅发布模块拆分指南

本文详细介绍了如何在Unity中使用Best MQTT v3插件构建清晰的服务层架构,包括配置管理、连接服务、订阅管理和发布服务的模块化拆分。通过解耦设计、事件驱动和接口抽象,提升代码可维护性和可测试性,适用于物联网和实时通信开发场景。

weixin_30576827的博客 358

初学Python:logging模块(logging.handlers.TimedRotatingFileHandler)

#! /usr/bin/python # -*- coding:utf-8 -*- import os import logging import sys from logging.handlers import TimedRotatingFileHandler reload(sys) sys.setdefaultencoding('utf8') #修改系统的默认编码 def create_...

bingozb的博客 2641

一文详解本地知识库RAG(检索增强):LangChain + Hugging Face 三件套 + 本地大模型 + MCP 协议 + Chroma + Agent 全流程实战

模型上下文协议(MCP)是 Anthropic 推出的开放标准,基于 JSON-RPC 2.0,为 AI 应用与外部工具/数据源之间提供统一的双向通信协议,被称为“AI 应用的 USB-C”。LangChain 是一个围绕 LLM、提示模板(Prompts)、记忆(Memory)、链(Chains)、工具(Tools)和代理(Agents)等组件打造的开源框架,旨在简化复杂自然语言应用的开发。:任意可调用的功能或服务(API、数据库查询、本地函数等),由 Agent 或 Chain 在推理过程中调用。

weixin_41645791的博客 1425

(四) OpenClaw-Skill技能全面了解和自定义技能

OpenClaw Skills是提升AI代理功能性的关键模块。本文系统介绍了Skills的核心概念、获取渠道和创建方法。Skills作为标准化指令集合,能让OpenClaw从单纯理解升级为实际执行任务,相比传统System Prompt具有模块化、可复用等优势。用户可通过Clawhub官方商店、GitHub社区等渠道获取5700+现成技能,或按需开发自定义Skill。文章详细演示了创建"Hello World"示例技能的完整流程,包括编写Python脚本、配置SKILL.md文件、部署。

直到世界的尽头 8295

Python日志库logging总结—史上最详细

在部署项目时,不可能直接将所有的信息都输出到控制台中,我们可以将这些信息记录到日志文件中,这样不仅方便我们查看程序运行时的情况,也可以在项目出现故障时根据运行时产生的日志快速定位问题出现的位置。 1、日志级别 Python 标准库 logging 用作记录日志,默认分为六种日志级别(括号为级别对应的数值),NOTSET(0)、DEBUG(10)、INFO(20)、WARNING(30)、ERR...

藏经阁 2215

【C2000系列DSP的Bootloader详解】如何利用脚本自动合并Bin文件

本文通过OutconvertBin.py实现了 C2000 Bootloader+UserApp 的「ELF 转 BIN+BIN 合并」全流程自动化,核心优势如下: 架构适配:严格遵循 C28x 16 位大端格式,生成的 BIN 文件可直接烧录; 自动化程度高:一键完成清理、转换、合并,无需手动执行多个命令; 可追溯性:生成 CRC32 校验值,便于验证文件完整性; 量产友好:合并后的merged.bin支持一次性烧录,提升量产效率。

昔时扬尘处 183

Python logging 模块之 logging.basicConfig 用法和参数详解

Python 函数之 logging.basicConfig 用法和参数详解 先举例个例子: import logging logging.basicConfig(level=logging.INFO, format='%(asctime)s %(filename)s %(levelname)s %(message)s', ...

静堂先生的博客 6万+

Qt Creator 启动慢、卡顿、无响应 终极解决教程

<think>我们需根据内容生成≤150字的摘要。摘要要涵盖问题、原因、解决方案和效果。注意字数限制。</think>Qt Creator启动慢、卡顿、无响应,主因是配置文件QtCreator.ini膨胀至数十MB(正常<100KB)。删除%APPDATA%\QtProject下的膨胀配置、崩溃备份及qtcreator.db即可,启动从几十秒降至几秒,内存占用恢复正常。辅助优化:关闭有道词典取词、禁用无用插件、调整clangd设置。定期检查配置文件大小,避免多版本共用配置。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 70

GIS数据处理-使用PostGIS+QGIS

GIS数据处理1-使用PostGIS+QGIS 介绍 这里我遇到了一个需求,需要将SQLite的.db数据库中GIS数据导出成shapefile文件 数据库的表结构如下所示,这里存储的是wkt格式的矢量数据 WKT与WKB格式介绍 OpenGIS 规范定义了两种表示空间对象的标准方式:Well-Know Text (WKT) 形式和Well-Known Binary(WKB) 形式。WKT 和 WKB 都包含矢量几何要素的对象类型和构成对象的坐标的信息。WKT可读性强,更方便阅读识别,而在实际数据传输和存

孙霸天的专栏 2528

python logging模块详解

logging库采用模块化方法,并提供了几类组件:记录器,处理程序,过滤器和格式化程序。 以记录器Logger为对象,设置合适的处理器Handler,辅助以筛选器Filter、格式器Formatter,设置日志级别以及常用的方法,最终输出理想的日志记录给到指定目标

weixin_47154909的博客 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Python logging 模块

Python logging 模块 给大家剖析下Python的logging模块。 logging模块是Python内置的一个强大易用的日志模块。简单到你只需要两行代码就能输出一些东西来:import logging logging.warning('Hi, I print something.')输出:WARNING:root:Hi, I print something.当然,我们可不能满足于

灰蓝 9171

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

python之logging模块

python之logging模块

weixin_39926295的博客 1646

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

详解python的logging模块

使用python文件将输出信息写入到文件中

weixin_46713695的博客 2946

Python的logging模块

DEBUG: 详细信息,通常只在调试问题时使用。INFO: 确认一切按预期运行。WARNING: 指示可能出现的问题,但仍可继续运行。ERROR: 由于更严重的问题,某些功能无法执行。CRITICAL: 严重错误,程序可能无法继续运行。

KIKI3666的博客 2635

python logging设置_Python中logging配置分享

Python中logging配置分享今天给大家分享的是我职业生涯至今一直再用的一份Python logging配置。无论是Python开发的后端程序还是基于Django的Web项目都可以使用这个logging配置。废话不多说直接上代码:importosimportlogging.config# 定义三种日志输出格式 开始standard_format = '[%(asctime) -s][%(...

weixin_31869569的博客 976

python的logging模块

介绍python的logging模块

lishanlu136的博客 1318

Python logging模块_logging

(1)常用参数(2)format格式化字符串的字段。

2401_86963496的博客 619

python logging设置_python logging 配置详解

logging 带颜色配置方法一: 自定义Logger类, 只能实现自己的实例化Logger类的log输出颜色import osimport loggingfrom logging import Formatterfrom typing import Union# logging.StreamHandler将日志消息发送到输出到Stream,如std.out, std.err或任何file-lik...

weixin_30715739的博客 692

python中logging库使用

编程代码中,日志的合理使用,能够很好地监控代码的运行过程;在业务部署中,通过日志的记录情况,快速查看代码状态,定位代码运行异常信息,能高效地进行代码维护、管理、执行等。

qq_38734327的博客 1711
上一篇: keras深度训练7: constant val_acc
下一篇: SkipGram, CBOW,Hierarchical Softmax,Negative Sampling
相国大人
博客等级 码龄10年 1009粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值