Python logging模块写入中文出现乱码

一下文件执行将产生乱码,切.log文件显示问好,打不开

import logging
def shop_logging(name):
  name = name+"登录成功!"
  logger = logging.getLogger()
  fh = logging.FileHandler("test.log")
  formatter = logging.Formatter("%(asctime)s - %(name)s-%(levelname)s %(message)s")
  fh.setFormatter(formatter)
  logger.addHandler(fh)
  logger.setLevel(logging.DEBUG)
  logger.info(name)
shop_logging("auxc")

经发现,是没有定义文件格式,修复后

import logging
def shop_logging(name):
  name = name+"登录成功!"
  logger = logging.getLogger()
  fh = logging.FileHandler("test.log",encoding="utf-8",mode="a")
  formatter = logging.Formatter("%(asctime)s - %(name)s-%(levelname)s %(message)s")
  fh.setFormatter(formatter)
  logger.addHandler(fh)
  logger.setLevel(logging.DEBUG)
  logger.info(name)
shop_logging("auxc")

加上 encoding="utf-8",mode="a" 完美解决中文乱码的问题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python日志处理模块logging用法解析

    logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等. 其主要优点如下: 1.可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息: 2.尤其是代码运行在服务器上,当出现问题时可以通过查看日志进行分析. logging模块基本使用: 设置logger名称 logger = logging.getLogger(log_name) 设置log级别 logger.setLevel(logging

  • python3中的logging记录日志实现过程及封装成类的操作

    作用: 主要记录信息,便于定位查看问题. python logging模块官网: https://docs.python.org/zh-cn/3.7/library/logging.html#formatter-objects 三种定位问题方法: print debug调试:代码写好后,就不需要再进行调试了,所以引入了logger logging.debug() – 一般在测试环境中用 logger:当生产环境中有问题时,可以查看logger定位问题 步骤: 1.初始化日志 收集器 2.设置日志

  • python将logging模块封装成单独模块并实现动态切换Level方式

    查找了很多资料,但网上给出的教程都是大同小异的,而我想将代码进一步精简,解耦,想实现如下两个目标 1. 将logging模块的初始化,配置,设置等代码封装到一个模块中: 2. 能根据配置切换logging.level, 网上给出的教程都是写死的,如果我在线上之前使用了logging.info(msg),现在想切换为logging.debug(msg)怎么办?需要能够根据配置文件中的 设置配置logging.level 两个文件: logging_class:将logging模块的初始化,配置,设

  • Python中关于logging模块的学习笔记

    python的logging模块 python提供了一个日志处理的模块,那就是logging. 导入logging模块使用以下命令: import logging logging模块的用法: 1.简单的将日志打印到屏幕上 import logging logging.debug("This is debug message") logging.info("This is info message") logging.warning("This is war

  • python logging.info在终端没输出的解决

    问题描述: 在pyhton脚本中logging.info("hello world")希望输出'hello world',但是在终端没有输出 解决方法: 在文件开始的地方添加以下内容: logging.getLogger().setLevel(logging.INFO) 补充知识:引用slf4j中Logger.info只打印出文字没有数据 引的是 slf4j 包 import org.slf4j.Logger; import org.slf4j.LoggerFactory; priva

  • Python logging模块写入中文出现乱码

    一下文件执行将产生乱码,切.log文件显示问好,打不开 import logging def shop_logging(name): name = name+"登录成功!" logger = logging.getLogger() fh = logging.FileHandler("test.log") formatter = logging.Formatter("%(asctime)s - %(name)s-%(levelname)s %(message

  • python logging模块的使用详解

    logging日志模块:是用来记录日志的模块,一般记录用户在软件中的操作 使用方法:模板直接拿来用,手动修改 # logging的配置信息(模板) import os import logging.config # 定义三种日志输出格式 开始(模板,不用配置,直接拿来用) standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]' \ '[%(lev

  • 解读python logging模块的使用方法

    1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 1.可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息: 2.print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据:logging则可以由开发者决定将信息输出到什么地方,以及怎么输出: logging框架中主要由四个部分组成: Loggers: 可供

  • python logging模块的使用

    默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG),默认的日志格式为日志级别:Logger名称:用户输出消息. 灵活配置日志级别,日志格式,输出位置 import logging file_handler = logging.FileHandler(filename='x1.log',

  • Python logging模块用法示例

    本文实例讲述了Python logging模块用法.分享给大家供大家参考,具体如下: logging模块 函数式简单配置 import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message') logging.bas

  • 解决Python logging模块无法正常输出日志的问题

    废话少说,先上代码 File:logger.conf [formatters] keys=default [formatter_default] format=%(asctime)s - %(name)s - %(levelname)s - %(message)s class=logging.Formatter [handlers] keys=console, error_file [handler_console] class=logging.StreamHandler formatter=d

  • python logging模块的分文件存放详析

    前言: 如果使用进到的日志文件方法:logging.FileHandler,会导致日志信息全部存放在一个日志文件中,不利于后面对日志文件的使用.下面分享常见的两种分文件存储日志的方法.delay = True 参数避免了出现多进程中读取日志权限的问题 TimedRotatingFileHandler 根据时间创建日志文件 TimedRotatingFileHandler(filename, when='h', interval=1, backupCount=0, encoding=None, d

  • python logging模块的使用总结

    日志级别 CRITICAL 50 ERROR 40 WARNING 30 INFO 20 DEBUG 10 logging.basicConfig()函数中的具体参数含义 filename:指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中: filemode:文件打开方式,在指定了filename时使用这个参数,默认值为"w"还可指定为"a": format:指定handler使用的日志显示格式: datefmt:指定日期时间格式.,格式参考

  • Python logging模块原理解析及应用

    一.logging日志模块等级 常见log级别从高到低: CRITICAL >ERROR >WARNING >INFO >DEBUG,默认等级为WARNING,即>=WARNING级别的log才输出. 日志等级(level) 描述 CRITICAL 当发生严重错误,导致应用程序不能继续运行时记录的信息 ERROR 由于一个更严重的问题导致某些功能不能正常运行时记录的信息 WARNING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的

  • Python logging模块异步线程写日志实现过程解析

    通过logging模块,重写一个logging2模块,独立开启线程,将待写的日志信息异步放入队列,做到日志输出不影响主流程性能,环境python3.8 logging2.py import os import threading import queue import time import datetime import logging from logging.handlers import RotatingFileHandler class logging2(threading.Threa

随机推荐