logging输出日志在文件、控制台的格式设置

2024-09-05 16:52

本文主要是介绍logging输出日志在文件、控制台的格式设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

formatter = logging.Formatter(fmt=%(asctime)s%(message)s”,datefmt=%Y-%m-%d %H:%M:%S’)
fh.setFormatter(formatter)
efh.setFormatter(formatter)
stdout.setFormatter(formatter)
stderr.setFormatter(formatter)
logger.addHandler(fh)
logger.addHandler(efh)

在Python中,logging模块用于程序输出日志信息,提供了灵活的日志系统配置。这里的代码主要是对日志记录器(logger)和多个处理器(handler)进行格式化配置。

formatter = logging.Formatter(fmt=“%(asctime)s%(message)s”, datefmt=‘%Y-%m-%d %H:%M:%S’):这行代码创建了一个Formatter对象,用来设置日志的显示格式。fmt参数定义了日志消息的格式,其中%(asctime)s会输出时间戳,%(message)s会输出具体的日志消息内容。datefmt参数定义了时间戳的显示格式,这里是年-月-日 时:分:秒的格式。

fh.setFormatter(formatter):这行代码将上面创建的格式化对象formatter应用到文件处理器fh上,意味着fh处理的日志信息将会按照formatter指定的格式来显示。

efh.setFormatter(formatter):同上,将格式化对象应用到错误文件处理器efh上。

stdout.setFormatter(formatter):将格式化对象应用到标准输出处理器stdout上,意味着通过标准输出(通常是控制台)的日志信息也会按照formatter指定的格式显示。

stderr.setFormatter(formatter):将格式化对象应用到标准错误处理器stderr上,意味着错误信息也会按照formatter指定的格式显示。

logger.addHandler(fh):这行代码将文件处理器fh添加到logger中,这样logger发出的日志信息会被fh处理并输出到指定的文件中。

logger.addHandler(efh):同上,将错误文件处理器efh添加到logger中。

1、formatter = logging.Formatter(fmt=“%(asctime)s%(message)s”, datefmt=‘%Y-%m-%d %H:%M:%S’):
创建了一个日志格式化器对象。
fmt参数指定了日志的格式,这里表示日志将包含日志记录的时间(%(asctime)s)和日志消息内容(%(message)s)。
datefmt参数指定了时间部分的具体格式,这里是年 - 月 - 日 时:分: 秒的格式。
2、fh.setFormatter(formatter) 和 efh.setFormatter(formatter):
假设 fh 和 efh 是不同的日志处理程序对象(可能是文件处理程序、特定错误处理程序等),这里将前面创建的格式化器应用到这两个处理程序上,使得它们输出的日志按照指定的格式进行格式化。
3、stdout.setFormatter(formatter) 和 stderr.setFormatter(formatter):
如果 stdout 和 stderr 也是日志处理程序相关的对象,这两行代码将格式化器应用到它们上,同样使它们输出的日志按指定格式呈现。
4、logger.addHandler(fh) 和 logger.addHandler(efh):
将处理程序 fh 和 efh 添加到日志记录器 logger 上。这样,当有日志消息需要记录时,日志记录器会将消息传递给这些处理程序进行处理和输出。
总体来说,这段代码的作用是配置日志记录器,通过创建格式化器并将其应用到不同的日志处理程序上,然后将这些处理程序添加到日志记录器,以实现对日志输出的格式控制和多渠道输出。

这篇关于logging输出日志在文件、控制台的格式设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1139533

相关文章

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

开启mysql的binlog日志步骤详解

《开启mysql的binlog日志步骤详解》:本文主要介绍MySQL5.7版本中二进制日志(bin_log)的配置和使用,文中通过图文及代码介绍的非常详细,需要的朋友可以参考下... 目录1.查看是否开启bin_log2.数据库会把日志放进logs目录中3.查看log日志总结 mysql版本5.71.查看

vue基于ElementUI动态设置表格高度的3种方法

《vue基于ElementUI动态设置表格高度的3种方法》ElementUI+vue动态设置表格高度的几种方法,抛砖引玉,还有其它方法动态设置表格高度,大家可以开动脑筋... 方法一、css + js的形式这个方法需要在表格外层设置一个div,原理是将表格的高度设置成外层div的高度,所以外层的div需要

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

IDEA如何让控制台自动换行

《IDEA如何让控制台自动换行》本文介绍了如何在IDEA中设置控制台自动换行,具体步骤为:File-Settings-Editor-General-Console,然后勾选Usesoftwrapsin... 目录IDEA如何让控制台自http://www.chinasem.cn动换行操作流http://www

使用TomCat,service输出台出现乱码的解决

《使用TomCat,service输出台出现乱码的解决》本文介绍了解决Tomcat服务输出台中文乱码问题的两种方法,第一种方法是修改`logging.properties`文件中的`prefix`和`... 目录使用TomCat,service输出台出现乱码问题1解决方案问题2解决方案总结使用TomCat,