logger使用,解决中文乱码问题,重复缓存问题

2024-05-16 09:28

本文主要是介绍logger使用,解决中文乱码问题,重复缓存问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目的

在模型训练过程中,想把控制台内容输出的内容缓存起来,以便后期检查使用,就用起了logger。用的时候遇到过中文乱码问题以及重复缓存问题(即后面的logger对象将前面的logger对象缓存内容也缓存下来了)。

解决方法:

  1. 设置编码格式(encoding=“utf-8”
  2. 写了清楚logger对象的函数。

在 Python 中使用 logging 模块时,如果实例化了多个 loggers 并且日志处理器没有被正确地移除,可能会导致日志数据重复。

代码

'''
Descripttion: 
Result: 
Author: Philo
Date: 2023-10-10 10:04:28
LastEditors: Philo
LastEditTime: 2024-05-15 20:53:44
'''
import logging
import osdef get_logger(log_name, verbosity=1):level_dict = {0: logging.DEBUG, 1: logging.INFO, 2: logging.WARNING} # 创建了一个字典,用于将传入的 verbosity 参数转换为相应的日志记录级别。formatter = logging.Formatter("[%(asctime)s][%(filename)s] %(message)s"   # 创建了一个格式化对象,用于指定日志记录的格式,其中包含了记录时间、文件名和消息内容。)logger = logging.getLogger(log_name)  # 获取一个 Logger 对象logger.setLevel(level_dict[verbosity]) # 设置记录器的记录级别,根据传入的 verbosity 参数选择相应的记录级别。fh = logging.FileHandler(log_name, "w", encoding="utf-8") # 创建了一个文件处理器对象,用于将日志记录写入到指定的文件中,以追加的方式写入。fh.setFormatter(formatter) # 为文件处理器对象设置了格式化器,指定了写入到文件中的日志记录格式。logger.addHandler(fh) # 将文件处理器对象添加到记录器中,以便将日志记录写入到文件中。return logger # 返回创建的记录器对象,以便在其他地方使用。def clear_loggers():for handler in logging.root.handlers[:]:logging.root.removeHandler(handler)if __name__ == "__main__":# 设置日志文件路径和记录级别log_filename = "example.log"log_verbosity = 1  # 0: DEBUG, 1: INFO, 2: WARNING# 创建记录器logger = get_logger(log_filename)# 记录不同级别的消息logger.debug("这是一条调试信息")logger.info("这是一条普通信息")logger.warning("这是一条警告信息")logger.error("这是一条错误信息")logger.critical("这是一条严重错误信息")clear_loggers()

输出结果:
在这里插入图片描述
代码训练过程中使用:
在这里插入图片描述

这篇关于logger使用,解决中文乱码问题,重复缓存问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

Golang基于内存的键值存储缓存库go-cache

《Golang基于内存的键值存储缓存库go-cache》go-cache是一个内存中的key:valuestore/cache库,适用于单机应用程序,本文主要介绍了Golang基于内存的键值存储缓存库... 目录文档安装方法示例1示例2使用注意点优点缺点go-cache 和 Redis 缓存对比1)功能特性

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

Python中配置文件的全面解析与使用

《Python中配置文件的全面解析与使用》在Python开发中,配置文件扮演着举足轻重的角色,它们允许开发者在不修改代码的情况下调整应用程序的行为,下面我们就来看看常见Python配置文件格式的使用吧... 目录一、INI配置文件二、YAML配置文件三、jsON配置文件四、TOML配置文件五、XML配置文件

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

springboot3.4和mybatis plus的版本问题的解决

《springboot3.4和mybatisplus的版本问题的解决》本文主要介绍了springboot3.4和mybatisplus的版本问题的解决,主要由于SpringBoot3.4与MyBat... 报错1:spring-boot-starter/3.4.0/spring-boot-starter-

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

Python中conda虚拟环境创建及使用小结

《Python中conda虚拟环境创建及使用小结》本文主要介绍了Python中conda虚拟环境创建及使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录0.前言1.Miniconda安装2.conda本地基本操作3.创建conda虚拟环境4.激活c

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解