首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python使用logging无法打日志文件却会在控制台输出error级别日志的诡异问题?

这个问题描述了在使用Python的logging模块时,遇到无法将日志记录到文件,但控制台仍然输出error级别日志的诡异问题。

首先,我们需要了解Python的logging模块是如何工作的。logging模块提供了一个简单的日志记录系统,它可以将日志记录到文件、电子邮件、控制台等不同的地方。logging模块的核心是Logger对象,它可以将日志记录到不同的地方,例如文件、控制台等。

在使用logging模块时,我们需要先创建一个Logger对象,然后设置日志的级别、格式和处理器等。处理器是将日志记录到不同的地方,例如文件、控制台等。如果我们想将日志记录到文件,我们需要使用FileHandler类来创建一个处理器,并将其添加到Logger对象中。

如果我们遇到无法将日志记录到文件,但控制台仍然输出error级别日志的诡异问题,可能是因为我们没有正确地配置处理器或者日志级别。例如,我们可能没有设置正确的日志级别,导致控制台输出了错误级别的日志,但是没有将其记录到文件中。

为了解决这个问题,我们需要检查我们的代码,确保我们正确地配置了处理器和日志级别。我们可以使用以下代码来创建一个Logger对象,并将其记录到文件中:

代码语言:python
代码运行次数:0
复制
import logging

# 创建一个Logger对象
logger = logging.getLogger(__name__)

# 设置日志级别
logger.setLevel(logging.ERROR)

# 创建一个FileHandler对象,将日志记录到文件中
handler = logging.FileHandler('example.log')

# 设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# 将处理器添加到Logger对象中
logger.addHandler(handler)

# 记录日志
logger.error('This is an error message')

在这个例子中,我们创建了一个Logger对象,并将其日志级别设置为ERROR。然后,我们创建了一个FileHandler对象,并将其添加到Logger对象中。最后,我们记录了一个错误级别的日志。

如果我们遇到无法将日志记录到文件,但控制台仍然输出error级别日志的诡异问题,我们可以检查我们的代码,确保我们正确地配置了处理器和日志级别。如果我们没有正确地配置处理器或者日志级别,我们可以尝试更改我们的代码,以便正确地记录日志。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 使用 logging模块打印日志

日志级别 日志一共分成5个等级,从低到高分别是: 1.DEBUG 2.INFO 3.WARNING 4.ERROR 5.CRITICAL 说明: DEBUG:详细信息,通常只出现在诊断问题上...ERROR:更严重问题,软件没能执行一些功能 CRITICAL:一个严重错误,这表明程序本身可能无法继续运行 这5个等级,也分别对应5种日志方法: debug 、info 、warning 、error...默认是WARNING,当在WARNING或之上时才被跟踪。 日志输出 有两种方式记录跟踪,一种输出控制台,另一种是记录到文件中,如日志文件。 将日志输出控制台 #!...coding=utf-8 import logging # 设置写入日志文件是 log-20190116.log , 其中使用覆盖写入 w 模式写日志文件 logging.basicConfig(...message 既要把日志输出控制台, 还要写入日志文件 这就需要一个叫作Logger 对象来帮忙,下面将对他进行详细介绍,现在这里先学习怎么实现把日志既要输出控制台又要输出文件功能。

1.3K30

深入理解 Python日志 logging 模块

介绍日志记录是软件开发中一个重要环节,它可以帮助我们监控程序运行过程中状态、诊断问题以及分析性能。Python 中通常使用 logging 模块,让我们能够方便地记录日志信息。2....CRITICAL日志级别数值描述DEBUG10详细诊断信息,用于开发和调试阶段INFO20一般性信息,例如程序启动、关闭或完成某个操作WARNING30潜在问题或异常情况,但并不会导致程序中断ERROR40...Logger 对象之间可以形成层次结构,以便更好地管理日志记录。Handler:Handler 对象负责将日志信息输出到不同目的地,例如控制台文件或网络。...,logging.FileHandler('my_log.log')是输出日志文件可以分别使用不同formatter,最终展示效果如下。...4.2 日志旋转在长时间运行程序中,日志文件可能会变得非常大。为了避免这个问题,可以使用日志旋转功能,这个在平时开发中很常见。

43350
  • Python logging模块基本使用

    logging 模块是 Python 内置标准模块,用于输出代码日志。...Python 内置了 logging 模块,在 Python 中,可以使用 logging 模块来实现与日志相关功能。如输出运行日志控制台,将运行日志写入文件日志文件滚动存储等。...相对直接 print 打印运行信息而言,使用 logging 模块输出日志可以设置日志等级,指定输出位置,写入文件等,使用起来方便很多。...basicConfig() 是 logging 中实现日志输出最简单和最基本方法。 运行上面的代码,会在控制台打印代码日志信息,因为 basicConfig() 默认是将日志信息打印到控制台。...如果在 basicConfig() 中传入 filename 参数,指定日志输出文件,则日志信息会写到文件中,不会在控制台打印。

    1.3K30

    使用Python捕获和处理异常日志

    本文将介绍如何使用Python来捕获和处理异常日志,帮助读者更好地理解和应用异常处理技术。...1.日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL。...ERROR:更严重问题,软件没能执行一些功能 CRITICAL:一个严重错误,这表明程序本身可能无法继续运行 这5个等级,也分别对应5种日志方法: debug 、info 、warning 、error...默认是WARNING,当在WARNING或之上时才被跟踪。 日志输出 输出日志有两种方式,第一种是输出控制台,第二种是输出日志文件。...输出控制台 import logging #定义日志输出格式 logging.basicConfig(level=logging.WARNING, format='%(asctime)s - %

    11510

    Python中关于logging模块学习笔记

    pythonlogging模块将日志打印到了标准输出中,也就是屏幕上,且只显示了大于等于WARNING级别日志....这说明默认日志级别设置为WARNING(日志级别等级CRITICAL ERROR WARNING INFO DEBUG) 默认直接输出日志格式为日志级别:Logger名称:用户:输出消息...在这里设定日志文件输出使用是basicConfig这个方法: logging.basicConfig函数各参数: filename: 指定输出日志文件名 filemode: 和file函数意义相同...,指定日志文件打开模式,写入模式用'w',追加模式使用'a' format: 指定输出内容格式,其中可以使用参数有: %(levelno)s: 指定输出日志级别的数值 %(levelname...比如,做运维同学,在接收到报警或各种问题反馈后,进行问题排查时通常都会先去看各种日志,大部分问题都可以在日志中找到答案。再比如,做开发同学,可以通过IDE控制台输出各种日志进行程序调试。

    26221

    Python接口自动化之logging日志

    使用logging日志模块,这些问题就能很容易地解决。 02 什么是日志日志就是用于记录系统运行时信息,对一个事件记录,也称为Log。 03 日志用途是什么?...,此情况一般不会影响软件正常实用,如用户登录密码错误; ERROR:错误级别(Value=40),打印错误异常信息,该级别的错误可能会导致系统一些功能无法正常使用,如IO操作失败或者连接问题;...它们功能强大、使用简单。Python自身也提供了一个用于记录日志标准库模块——logging。...二 Logging模块 01 logging模块介绍 logging模块是Python内置标准模块,主要用于输出运行日志,可以设置输出日志等级、日志保存路径、日志文件回滚等。...('自定义warning日志') logger.error('自定义error日志') logger.critical('自定义critical日志') 控制台输出效果: ?

    1.4K10

    Python使用logging日志

    logging介绍: 我们经常使用print()函数打印一些信息到控制台,方便查看结果和一些调试信息。...Python中内置一个日志模块——logging,通过它我们就可以很方便Python代码中记录简单程序日志。...默认情况下,logging使用日志级别是warning,这表示只有在这个级别及其以上级别日志信息才会被记录,所以默认情况下debug信息和info信息都不会被显示出来。...控制台输出: WARNING:root:警告信息 ERROR:root:出现了错误 # 我们使用logging模块basicConfig()方法,修改一个日志输出等级为INFO import logging..."警告信息") # 控制台输出: INFO:root:打印信息 WARNING:root:警告信息 ERROR:root:出现了错误 # 记录日志信息除了打印到控制台之外,我们还能够将其写入文件中。

    95220

    python + logging 实现日志输出及保存到文件

    文章目录 1 开始使用 logging 1.1 第一个程序 1.2 日志级别 1.3 输出格式 2 输出日志文件 2.1 使用 basicConfig 配置文件路径 2.2 logging 模块化设计...error级别,一般用来打印一些错误信息') logging.critical('critical级别,一般用来打印一些致命错误信息,等级最高') 这样直接就可以在控制台输出日志信息了: WARNING...2 输出日志文件 2.1 使用 basicConfig 配置文件路径 以上我们只是把日志输出控制台,但很多时候我们可能会需要把日志存到文件,这样程序出现问题时,可以方便我们根据日志信息进行定位。...这样好处在于,当我们有多个日志去向时,比如既保存到文件,又输出控制台,就可以分别给他们设置不同级别;logger 级别是先过滤,所以被 logger 过滤日志 handler 也是无法记录...参考文章: Python + logging 输出到屏幕,将log日志写入文件 Python标准模块–logging

    5.8K41

    一看就懂,Python 日志模块详解及应用

    输出终端指的是将日志控制台输出显示和将日志存入文件日志级别指的是 Debug、Info、WARNING、ERROR以及CRITICAL等严重等级进行划分。...日志输出 输出控制台 使用 logging控制台打印日志,这里我们用 Pycharm 编辑器来观察: import logging logging.debug('崔庆才丨静觅、韦世东丨奎因')...同时也在控制台输出日志内容,默认情况下 Python使用 logging 模块中函数打印日志日志会在控制台输出,而不会保存到日文件。 有什么办法可以改变默认日志级别呢?...保存到文件 刚才演示了如何在控制台输出日志内容,并且自由设定日志级别,那现在就来看看如何将日志保存到文件。...在 .py 文件同级目录生成了名为 coder.log 日志。 通过简单代码设置,我们就完成了日志文件控制台文件输出。那既在控制台显示又能保存到文件中呢?

    68641

    Python日志模块全面指南】:记录每一行代码呼吸,掌握应用程序脉搏

    通过分析日志文件,管理员可以了解系统使用情况、问题发生原因以及如何解决这些问题日志通常包含时间戳、事件描述、错误消息、警报等信息。...logging模块是Python内置标准模块,主要用于输出运行日志,可以设置输出日志等级、日志保存路径、日志文件回滚等; ⭐四、日志级别logging 模块中,日志级别用于描述日志重要程度。...; ERROR:由于更严重问题,软件已无法执行某些功能; CRITICAL:严重错误,表明程序本身可能无法继续运行。...例如,数据缺失或配置文件格式错误等。 # ERROR # ERROR 级别日志表示由于更严重问题,软件已无法执行某些功能。例如,数据库连接失败、文件无法打开等错误。...),指定该设置项后日志信息就不会被输出控制台了 filemode 指定日志文件打开模式,默认为’a’。

    34930

    python--日志系统

    比如,做运维同学,在接收到报警或各种问题反馈后,进行问题排查时通常都会先去看各种日志,大部分问题都可以在日志中找到答案。再比如,做开发同学,可以通过IDE控制台输出各种日志进行程序调试。...日志实现通常大家在项目过程中,使用print进行简单日志输出分析问题,但是输出一时爽,在最终要发布版本时,又要去查找print代码行去进行删除。运行过程中我们也不可能时时刻刻盯着控制台分析。...Python自身也提供了一个用于记录日志标准库模块--logging。...下面我们就来介绍logging使用日志级别可以控制最终要输出日志,在开发阶段我们可以控制输出所有日志,在运行阶段就只输出ERROR级别日志。...('This is a error message')以上代码只会在控制台输出warning和error,因为默认打印级别是warning。

    92780

    试一试 logging 强大!

    如果我们现在只能得知当前问题现象,而没有其他任何信息的话,如果我们想要解决掉这个问题的话,那么只能根据问题现象来试图复现一下,然后再一步步去调试,这恐怕是很难,很大概率上我们是无法精准地复现这个问题...输出终端指的是将日志控制台输出显示和将日志存入文件日志级别指的是 Debug、Info、WARNING、ERROR 以及 CRITICAL 等严重等级进行划分。 2....info 优先级,当这显然不是我们所需要; 运行模块信息等信息; 在 Python 中有一个标准 logging 模块,我们可以使用它来进行标注日志记录,利用它我们可以更方便地进行日志记录,同时还可以做更方便级别区分以及一些额外日志信息记录...标准级别及其适用性描述如下(以严重程度递增排序): 级别 何时使用 每个级别对应数字值为 NOTSET 不设置 0 DEBUG 详细信息,一般只在调试问题时候使用 10 INFO 证明事情按照预期工作...50 Python日志默认等级是 WARNING,DEBUG 和 INFO 级别日志将不会得到显示,在 logging 中更改设置。

    52230

    Python入门之Pythonlogging模块

    # 指定日志最低输出级别,默认为WARN级别 logger.setLevel(logging.INFO) # 输出不同级别的log logger.debug('this is debug info...%(filename)s 调用日志输出函数模块文件名 %(module)s 调用日志输出函数模块名| %(funcName)s 调用日志输出函数函数名| %(lineno)d 调用日志输出函数语句所在代码行...可能没有 %(message)s 用户输出消息 SetLevel 日志级别 Logging有如下级别: DEBUG,INFO,WARNING,ERROR,CRITICAL 默认级别是WARNING...备注: 其实你甚至可以什么都不配置直接使用默认值在控制台log,用这样方式替换print语句对日后项目维护会有很大帮助。....setLevel(logging.CRITICAL) # 将它级别设置到最高 小结 Python日志模块作为标准库一部分,功能还是比较完善

    69080

    SpringBoot框架日志详解

    日志作用 在本地调试时候,我们可以通过断点等方式进行调试、但是当系统在测试环境或者被部署到生产环境 中,我们无法通过断点进行调试。而且很多时候我们都是等问题发生之后才能获知问题出现。...这个时候 我们需要一个可靠方式记录问题发生情况。日志系统虽然不能实现什么业务、也无法提高系统性 能。但是日志是保证服务可靠重要功能。...所以我们无需在引入spring-boot-starter-logging依赖日志相关配置文件输出 默认情况下,Spring Boot将日志输出控制台,不会写到日志文件。...如果要编写除控制台输出之外日志文件,则需在application.properties中设置logging.file或logging.path属性。...--此日志appender是为开发使用,只配置最底级别控制台输出日志级别是大于或等于此级别日志信息--> <!

    9410

    看完这个不会配置 logback ,请你吃瓜!

    properties中就是指定了日志打印级别日志输出位置: #设置应用日志级别 logging.level.com.glmapper.spring.boot=INFO #路径 logging.path...验证结果 还是通过我们测试controller来打印日志为例,但是这里不会在控制台出现日志信息了。期望日志文件在....因此appender让我们应用知道怎么、打印到哪里、打印成什么样;而logger则是告诉应用哪些可以这么。例如某个类下日志可以使用这个appender打印或者某个包下日志可以这么打印。...这个包下${logging.level}级别日志将会使用GLMAPPER-LOGGERONE来打印。...其实我觉得还是很有必要日志组件毕竟是需要进行日志文件落盘,这个会涉及到许多性能问题、缓冲区问题、队列问题、当然还有一些锁问题、同步打印或者异步打印等问题

    1.6K30

    Python Logging 模块完全解

    你可以配置一个输出控制台 logger 和另一个将日志发送到文件 logger,它们具有不同日志记录级别,并且特定于给定模块。...logging 5 个级别 logging有 5 个不同层次日志级别,可以将给定 logger 配置为这些级别: DEBUG:详细信息,用于诊断问题。Value=10。...WARNING:意想不到事情发生了,或预示着某个问题。但软件仍按预期运行。Value=30。 ERROR:出现更严重问题,软件无法执行某些功能。Value=40。...CRITICAL:严重错误,程序本身可能无法继续运行。Value=50。 现在,让我们回答之前提出问题。默认 logger 是root,其默认 basicConfig 级别是WARNING。...如果级别使用logging.ERROR代替,只有来自logging.errorlogging.critical信息会被记录。 ?

    1.1K20

    python学习笔记7.7-日志记录模块logging

    段子里说,使用日志程序员鄙视使用print记录信息程序员,所以作为一个合格程序员,合理记录日志实数非常必要。本文主要介绍在python中如何使用logging模块记录日志。 1....,在审查、建档、统计等功能中也用比较多 2. logging模块简介 loggingpython内置一个标准模块,主要用于输出或者保存程序运行日志,它有以下优点: - 可以设置输出日志等级、...日志保存路径、日志文件回滚 - 不仅可以控制台输出,还可以文件保存,不仅可以在代码中配置,还支持从配置文件中直接加载日志配置 与print()函数相比,logging有很多优势,如果还在用print...配置logging,包括是在控制台输出还是保存在文件输出内容、输出格式等(可以在代码中直接配置,也可以在配置中加载配置)2.初始化一个日志类 3....使用不同级别日志函数记录日志 4.1 基本使用:在控制台输出日志信息 logging基本使用是在控制台中,使用例程: import logging # config the logging logging.basicConfig

    69550

    Python日志logging总结-可能是目前为止将logging库总结最好一篇文章

    在部署项目时,不可能直接将所有的信息都输出控制台中,我们可以将这些信息记录到日志文件中,这样不仅方便我们查看程序运行时情况,也可以在项目出现故障时根据运行时产生日志快速定位问题出现位置。...1、日志级别 Python 标准库 logging 用作记录日志,默认分为六种日志级别(括号为级别对应数值),NOTSET(0)、DEBUG(10)、INFO(20)、WARNING(30)、ERROR...logging 模块这样设计是为了更好灵活性,比如有时候我们既想在控制台输出DEBUG 级别日志,又想在文件输出WARNING级别日志。...python 文件时,如 import test.py,在满足大于当前设置日志级别后就会输出导入文件日志。...7、实战中问题 1、中文乱码 上面的例子中日志输出都是英文内容,发现不了将日志输出文件中会有中文乱码问题,如何解决到这个问题呢?

    41.1K146

    python学习--第十二天(二)

    ,比如foo.x,但foo没有属性x IOError         输入输出异常;基本是无法打开文件错误 ImportError      无法引入模块或者包;基本上是路径问题或者名称错误 IndentationError...(logging.DEBUG) # 创建一个handler,用于写入日志文件,只输出debug级别以上日志 fh = logging.FileHandler('test.log') fh.setLevel...< WARNING < ERROR < CRITICA   如果把logger级别设置为INFO,那么小于INFO级别日志都不输出,大于等于INFO级别日志输出。...Python日志系统有多种Handler可以使用。有些Handler可以把信息输出控制台,有些Logger可以把信息输出文件,还有些 Handler可以把信息发送到网络上。...:    # 日志输出文件,并按照设定日志文件大小切割 logging.handlers.TimedRotatingFileHandler  # 日志输出文件,并按设定时间切割日志文件 (不常用

    71720
    领券