python logging + yaml

Python使用yaml配置logging日志+根据当前时间创建日志名称 1、用yaml配置文件来配置logging日志 2、以当前日期(ex.年月日时分)作为日志文件名 代码目录结构如下: py |-- config |--config.yaml |--logger.py # config.yaml version: 1 disable_existing_loggers: False formatters: simple: format: '[%(asctime)s] [%(levelname)s] %(message)s' 阅读详情

logging.basicConfig(filename, filemode, format)

其中format格式:

%(levelno)s:打印日志级别的数值
%(levelname)s:打印日志级别的名称
%(pathname)s:打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s:打印当前执行程序名
%(funcName)s:打印日志的当前函数
%(lineno)d:打印日志的当前行号
%(asctime)s:打印日志的时间
%(thread)d:打印线程ID
%(threadName)s:打印线程名称
%(process)d:打印进程ID
%(message)s:打印日志信息

yaml配置

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
    info_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: INFO
        formatter: simple
        filename: test.log
        maxBytes: 1024
        backupCount: 5
        encoding: "utf8"

loggers:
    fileLogger:
        level: DEBUG
        handlers: [console, info_file_handler]
        propagate: no
roots:
    level: DEBUG
    handlers: [console]
    propagate: true
  • 上面的配置中, disable_existing_loggers默认为true, 说明当前的配置会覆盖调以前的配置;
  • formatters, 定义了一组formatID, 没种都有自己的格式;
  • handlers, 定义了一组handler的ID, 其中class是必须的, 其它参数是用于构建相应的handler类对象时使用到的参数; 这里的console的类, 用了默认的stdout来输出;
  • loggers, 定义真正使用的loggerID和格式, 如这里的fileLogger, 就是在代码中通过logger = logging.getLogger("fileLogger")来获得该类型的logger;
  • root, 默认情况下的输出配置, 当logging.getLogger("type")里面的type没有时, 就是用的这个默认的root, 如logging.getLogger(__name__)或logging.getLogger(); 没有这个, 则这些将不会有输出;
# coding:utf-8
import yaml
import logging.config
import os
import my_module

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

setup_logging(default_path="logging.yaml")

logger = logging.getLogger("fileLogger")
logger.info("aaaaaaaaaaa") 
logger.debug("debug debug .....")
实战指南:如何用DCCRN模型提升语音增强效果(附代码示例) 本文提供了基于DCCRN模型进行语音增强的实战指南。通过深入解析复数网络如何协同处理语音的幅度与相位信息,并附有完整的PyTorch代码实现,帮助开发者从数据准备、模型搭建到训练调优,构建高效的实时语音增强系统,有效提升嘈杂环境下的语音清晰度。 阅读详情

相关推荐

遥感数据下载——FIRM:VIIRS火点数据、MODIS火点数据简介及下载

一、FIRMS(Fire Information for Resoutce Management System) 网站链接:https://firms.modaps.eosdis.nasa.gov/map/ 这个网站上对VIIRS及MODIS的火灾数据进行了显示,可以进行按日期、产品类别等动态的展示火点数据或火烧迹地,同时也提供了数据下载控件。高级选择中还可以进行数据统计结果展示。 二、VIIR...

knkn123的博客 3万+

Python的logging日志工具 & 深度学习项目yaml配置文件

如果某一个日志对象打日志时,它的父对象会同时收到日志,所以有些使用者发现创建了一个logger对象时会打两遍日志,就是因为他创建的logger打了一遍日志,同时root对象也打了一遍日志。会创建两个logger对象,一个是abc父对象,一个是xyz子对象,同时abc没有父对象,所以它的父对象是root。得到的对象都是一样的,不需要重新配置,可以直接使用。定义的该logger的子logger,都可以共享父logger的定义和配置,所谓的父子logger是通过命名来识别,任意以。......

发现问题,并解决问题,批判性思维 4258

FISCO BCOS平台的用户权限控制与分类管理

在区块链技术日益广泛应用的今天,如何管理与控制不同用户的权限,确保系统的安全性与高效性,成为了区块链平台不可忽视的一部分。FISCO BCOS作为一款高效的联盟链平台,通过细粒度的权限控制机制,提供了对不同用户权限的有效管理。本文将深入探讨FISCO BCOS如何实现用户的权限控制,并对不同用户进行分类与权限管理。FISCO BCOS平台通过精密的权限控制机制,不仅提供了对用户表和系统表的细粒度权限管理,还通过工具与接口为开发者和管理员提供了便捷的权限配置与查询功能。

2201_75798391的博客 1060

使用yml文件配置python日志

使用yml配置python日志

分享技术,记录思考和感悟 1504

Unity插件-Mirror使用方法(一)Mirror介绍

Unity Mirror 是一个专为 Unity 引擎设计的开源、社区驱动的网络库,主要用于简化多人联机游戏的开发。它最初是为了替代 Unity 原生的 UNet 系统(已被官方弃用)而创建的,因其轻量、灵活和高效的特点,成为 Unity 开发者构建多人游戏的热门选择。

qq_44501691的博客 4099

uniapp - 解决在线预览PDF文件空白打不开的问题,无论是后端下载二进制文件流pdf还是本地插件或JS预览查看打开白屏不显示,详细排查解决(适用于移动端H5网页、安卓/苹果app、微信小程序)

uniapp App端 实现pdf文件预览打开白屏解决,uniapp 在线预览pdf打开一片空白,跨域白屏,uni-app中使用WebView预览PDF文件打开空白,微信小程序(uniapp)预览PDF空白怎么办,下载PDF文件流后打开空白或无法打开的问题,Uniapp H5网页下载二进制pdf文件页面空白以及解决文件损坏打不开的情况,Uniapp app在线预览pdf文件流,PDF加载出来怎么办,服务器后端返回PDF文件流后前端进行下载但打开后一片白屏,解决pdf文件流,预览全是空白页,pdf文件流,下载

🏆 前端领域优质创作者 1万+

Python使用yaml配置logging日志

前言 在Python环境下,logging是一个很好的用于处理日志的扩展包。平时使用时一般直接import logging后,调用logging.debug(“info”)方法打印日志。一般情况下够用,但是在需要涉及到复杂的日志功能(例如分级、写文件、归档等)后,则需要深入地对logging进行配置。通常情况下会使用yaml配置。 实践 创建一个loggingconfigyaml.yaml文件,内容如下: version: 1 disable_existing_loggers: False format

TracelessLe的专栏 4630

打通ZYNQ的任督二脉:AXI_FIFO数据交互全解析

FIFO(First In First Out,先进先出)是一种经典的数据缓冲结构,就像排队买票一样,先来的人先得到服务。时钟域交叉(CDC):连接不同时钟频率的模块数据缓冲:平衡生产者和消费者的速度差异流量控制:防止数据丢失或溢出input clk,// 输入AXI4-Stream接口(从PS到PL)// 输出AXI4-Stream接口(从PL到PS)// 状态指示信号// 定义状态机状态// 数据缓存// 8个深度的缓存// 流水线处理寄存器。

QQ_778132974的博客 305

python的logging模块使用,以及日志文件按日期路径保存,按时间滚动切分

本文一开始尝试了logging的三个基础的日志文件模块,最后因为实际使用需要,即日志文件按日期路径保存,按时间滚动切分。实现方式是重写了TimedRotatingFileHandler的doRollover方法的文件翻转块代码,以达到实现日志文件按日期保存到不同的文件夹路径,如/2022/08/11/的路径结构,并将日志文件重命名为具体时间,如235959.info.log,当然也区分保存了info和error两种日志。

Cameback_Tang的博客 4995

深入Netflix影片分类数据抓取的Python爬虫实战:反反爬机制绕过与Playwright应用全解析

技术工具用途Playwright控制真实浏览器模拟用户行为开发语言asyncio异步调度浏览器任务pandas数据处理和导出sqlite3本地数据库存储支持随机UA模拟,增强反爬能力为什么选择 Playwright?✅ 支持多浏览器(Chromium、Firefox、WebKit)✅ 原生支持 Python 异步编程✅ 提供截图、滚动模拟、验证码处理等高级功能✅ 反爬能力强,模拟真实用户访问。

2201_76125261的博客 1239

Python之achatbot包语法、参数和实际应用案例

本书是一本PyTorch深度学习实战指南,分为基础(前6章)和进阶(后5章)两大部分。基础部分涵盖张量运算、神经网络、数据预处理及CNN等核心内容;进阶部分则深入图像、文本、音频建模技术,重点解析Transformer架构及大语言模型开发。全书采用"理论+实践"模式,适合从零基础到进阶的PyTorch学习者。

王国平的博客 632

[python小记] logging模块yaml配置

logging模块基础部分不做详述,见代码 import logging from my_server import setup_logging logger = log.getLogger(__name__) formatter = log.Formatter('%(asctime)s [%(name)s] :%(levelno)s:%(message)s', '%F %T') # cre

a469357594的博客 5091

【Unity大规模RTS/攻城战框架】Large Scale Combat System - RTS Sieges深度解析

本文介绍了Unity专业级大规模RTS战斗框架Large Scale Combat System(LSCS)。该系统通过Job System+Burst技术解决了万人级单位的性能问题,提供完整的RTS操作体系、动态阵型系统、战术AI和攻城战功能。其亮点包括可破坏城门、行走城墙、战术AI配置系统,支持URP渲染管线,适用于Total War风格的大规模兵团对战项目。LSCS不仅提供核心战斗系统,还包含UI、小地图等配套模块,是Unity中少有的专业级RTS解决方案,特别适合需要深度战术玩法和大规模战斗的开发者

2403_88403568的博客 1334

Python 3.12 logging - 16 - fileConfig - YAML

本文介绍了使用YAML配置Python logging模块的方法,提供了两个详细示例。第一个示例展示基础控制台日志配置,包含格式化器和处理器设置;第二个示例演示了更复杂的配置,包括父子Logger继承关系、文件轮转、自定义过滤器和多级日志器传播机制。

山低水浅有陋室,檐下听雨敲键盘 531

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python logging模块实现日期分割_python+logging+yaml实现日志分割

本文实例为大家分享了python+logging+yaml实现日志分割的具体代码,供大家参考,具体内容如下1、建立log.yaml文件version: 1disable_existing_loggers: Falseformatters:simple:format: "%(asctime)s - %(filename)s - %(levelname)s - %(message)s"datefmt:...

weixin_39951396的博客 344

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python logging日志分割_python+logging+yaml实现日志分割

本文实例为大家分享了python+logging+yaml实现日志分割的具体代码,供大家参考,具体内容如下1、建立log.yaml文件version: 1disable_existing_loggers: Falseformatters:simple:format: "%(asctime)s - %(filename)s - %(levelname)s - %(message)s"datefmt:...

weixin_39623411的博客 191

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python 记录日志 | logging + yaml

Baimoc 2379

Python和JSON、yaml、excel、配置文件、logging

一、json格式数据和python数据的不同点 python中的列表:[];在json中叫做数组 Array python中的字典:{key:value};在json中叫做对象 object python中的布尔值:True、False;在json中的布尔值 true false python中的空值:None;在json中的空值 null json中的引号,统一使用双引号 ...

testleaf.cn 1712

Python基于yaml文件配置logging日志过程解析

更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.op-kg.com/ 一、使用logging.config.dictConfig()函数读取配置信息,参数是字典类型 with open(file="./loggingconfigyaml.yaml", mode='r', encoding="utf-8")as file: logging_yaml = ya

菜鸟教程 1059

python logging with yaml

Recently, I was made a service which can provide a simple way to get best model. so, i spent lot of time to read source code of auto-sklearn, auto-sklearn isan automated machine learning toolkit and ...

weixin_30516243的博客 182

python+logging+yaml日志分割

1、建立log.yaml文件 version: 1 disable_existing_loggers: False formatters: simple: format: "%(asctime)s - %(filename)s - %(levelname)s - %(message)s" datefmt: '%F %T' handlers: c...

猪逻辑公园 2236

Python常见文件操作(txt, json,yaml,xml,logging,AsciiTable)

txt open() with open('jilu.txt', 'r') as f: # 打开文件(仅读模式) get = f.readlines() # 读取每一行,返回值为列表,每个元素包含换行符 get = [x.strip() for x in get] # 将换行符去掉(也可删除元素前后的空格) with open('jilu.txt', 'w') as f: # 打开文件 写模式 for i in mylist: f.write(i+'\n') # 带换行写

qq_39165617的博客 436

logging模块的YAML配置

python实现日志系统

yinchao163的专栏 3270

python 日志 logging模块(详细解析)

1 基本使用 转自:https://www.cnblogs.com/wf-linux/archive/2018/08/01/9400354.html 配置logging基本的设置,然后在控制台输出日志, import logging logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(...

pansaky的博客 15万+

python之logging快速使用

【代码】python之logging快速使用。

alterhz的博客 339

python中logging标准日志模块一次加载多个处理器

使用 JSON 或者 YAML 记录配置虽然你可以在 python 代码中配置你的日志系统,但是这样并不够灵活。最好的方法是使用一个配置文件来配置。在 Python2.7 及之后的版本中,你可以从字典中加载 logging 配置。这也就意味着你可以从 JSON 或者 YAML 文件中加载日志的配置。尽管你还能用原来 .ini 文件来配置,但是它既很难读也很难写。下面我给你们看一个用 JSON 和 ...

feng98ren的专栏 714
上一篇: InnoDB基础
下一篇: readline使用示例
呵离
博客等级 码龄12年 18粉丝 86原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值