当前位置: 首页 > news >正文

PYTHON-logging-工具类-支持中文字符控制台输出和文件写入-不会导致乱码

import logging
import sys
import os
import time
from logging.handlers import RotatingFileHandler
import iodef get_logger(tag):# 创建一个新的输出流,并指定编码为UTF-8sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')accPath = 'logs'if not os.path.exists(accPath):os.makedirs(accPath, 0o644)logger = logging.getLogger(tag)logger.setLevel(logging.DEBUG)fh = RotatingFileHandler(accPath + os.sep + tag + '.log', maxBytes=1024*1024*100, backupCount=30, encoding='utf-8')fh.setLevel(logging.DEBUG)ch = logging.StreamHandler(sys.stdout)ch.setLevel(logging.DEBUG)formatter = logging.Formatter("%(asctime)s - %(thread)d - %(levelname)s - %(message)s")ch.setFormatter(formatter)fh.setFormatter(formatter)logger.addHandler(ch)logger.addHandler(fh)return logger# 测试日志输出
gl = get_logger('test')
gl.info("中文字符测试")# 测试控制台输出
print("中文字符测试")
```
http://www.lryc.cn/news/104627.html

相关文章:

  • 对gpt的简单认识
  • java类和对象详解(1)
  • RxJava 倒计时,轮询器
  • SE-Net注意力机制
  • 【Lua学习笔记】Lua进阶——垃圾回收
  • session和cookie
  • P7243 最大公约数
  • ES6基础知识九:你是怎么理解ES6中Module的?使用场景?
  • TensorFlow项目练手(三)——基于GRU股票走势预测任务
  • 微信小程序页面传值为对象[Object Object]详解
  • Redis篇
  • Entity Framework(EF)查询
  • 使用Pytest生成HTML测试报告
  • DSA之图(4):图的应用
  • [SQL挖掘机] - 窗口函数 - row_number
  • 【论文阅读】通过解缠绕表示学习提升领域泛化能力用于主题感知的作文评分
  • 二分查找P1873 [COCI2011-2012#5] EKO / 砍树
  • 【BOOST程序库】正则表达式相关操作
  • 阿里云国际版在使用过程中应该注意什么呢?
  • Flutter Provider 共享状态管理
  • std vector 用法
  • vue vite ts electron ipc addon-napi c arm64
  • 机器人科普--AGILOX 叉车
  • Django的生命周期流程图(补充)、路由层urls.py文件、无名分组和有名分组、反向解析(无名反向解析、有名反向解析)、路由分发、伪静态
  • selenium交互代码
  • 下载远程服务器文件
  • [SQL挖掘机] - 索引
  • C++STL库中的list
  • 【LeetCode 75】第十七题(1493)删掉一个元素以后全为1的最长子数组
  • 配置IPv6 over IPv4 GRE隧道示例