在python中logger setlevel没有生效的解决

在logging中,Logger's level 的默认等级为warning

所以虽然在handler中setlervel了,Logger's level 和Handler's Level 但是level取较高的那个(待校验)

所以日志的level 为warning

解决此问题可以采用

logging.root.setLevel(logging.NOTSET)

完整源码如下图:

import logging

class loggerr(object):
  def __init__(self,logger):
    self.logger = logging.getLogger(logger)
    self.fmt=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s -%(message)s ')
    logging.root.setLevel(logging.NOTSET)
    #logging.basicConfig(level=logging.NOTSET)

  def getlog(self):

    ch=logging.StreamHandler()
    sh=logging.FileHandler('log1.log')

    ch.setFormatter(self.fmt)
    sh.setFormatter(self.fmt)

    ch.setLevel(logging.INFO)
    sh.setLevel(logging.INFO)

    self.logger.addHandler(ch)
    self.logger.addHandler(sh)
    return self.logger

if __name__ == '__main__':
  mylog=loggerr('mylog').getlog()
  mylog.info('infolog')
  mylog.debug('debuglog')
  mylog.warning('warninglog')
  mylog.error('errorlog')

以上这篇在python中logger setlevel没有生效的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • python logging设置level失败的解决方法

    一.问题描述 在用python开发时经常用到logging这个包,根据官方示例,如果要指定日志级别可以写成如下的方式. import logging logging.basicConfig(level=logging.INFO) 但是在实际应用中,这种方式有时候会设置不成功,导致无法打印出info及以下级别的日志.一种最直接的解决方式是将这两行代码提到文件的最前面,保证在所有其他import语句之前. 示例如下. # encoding=utf8 import logging logging.ba

  • python logging.basicConfig不生效的原因及解决

    最近在写脚本时,明明在脚本里使用logging.basicConfig配置了log目录,可目录文件确实空的 import logging from Logger import logger as log # log.Log_Info('nihaohaohao') # 设置log的存储文件 logging.basicConfig(filename = os.path.join(os.getcwd(), 'logs/report_log.txt'), level = logging.DEBUG) l

  • logging level级别介绍

    日志记录器(Logger)是日志处理的核心组件.log4j具有5种正常级别(Level). 1. static Level DEBUG : DEBUG Level指出细粒度信息事件对调试应用程序是非常有帮助的,一般认为比较重要的方法执行需要详细查看运行情况的则开启debug. 2. static Level INFO INFO level表明消息在粗粒度级别上突出强调应用程序的运行过程,只需要了解该方法是否运行的可以使用INFO 3. static Level WARN WARN level表明

  • 在python中logger setlevel没有生效的解决

    在logging中,Logger's level 的默认等级为warning 所以虽然在handler中setlervel了,Logger's level 和Handler's Level 但是level取较高的那个(待校验) 所以日志的level 为warning 解决此问题可以采用 logging.root.setLevel(logging.NOTSET) 完整源码如下图: import logging class loggerr(object): def __init__(self,log

  • Python中logger日志模块详解

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

  • python中导入 train_test_split提示错误的解决

    如下所示: 原因: 在python3.6中sklearn已弃用train_test_split,导致导入报错 解决方式,用model_selection模块导入: from sklearn.model_selection import train_test_split 经测试,在python2中也是使用该方式导入train_test_split模块 补充知识:from sklearn.model_selection import train_test_split找不到模块 解决方案: pip u

  • vue 组件中添加样式不生效的解决方法

    如何产生 在开发项目中遇到在组件中添加样式不生效的情况.具体场景如下 //// vue 组件 <template> <div class="box" data-v-33f8ed40></div> <template> //我用js在上面div标签中插入一个<p class='text'>text goes here</p> <script> export default { ... mounted(){

  • Python中遇到的小问题及解决方法汇总

    本文会把学习过程中遇到的一些小问题和解决办法放在这里,以便于大家能够更好地学习python. 一.Python的异常处理 因为想到自己不断尝试写小程序的话会用到抛出异常信息来判断哪里出现了问题: usage: raise [Exception [, args [, trackback]]] 上面是Python的raise的用法,下面是自己用这个方法实现异常的抛出方法: def check_args(args): if not args.host: msg = 'Args missing! One

  • 浅谈python中requests模块导入的问题

    今天使用Pycharm来抓取网页图片时候,要导入requests模块,但是在pycharm中import requests 时候报错. 原因: python中还没有安装requests库 解决办法: 1.先找到自己python安装目录下的pip 2.在自己的电脑里打开cmd窗口. 先点击开始栏,在搜索栏输入cmd,按Enter,打打开cmd窗口.在cmd里将目录切换到你的pip所在路径. 比如我的在C:\Python27\Scripts这个目录下,先切换到d盘,再进入这个路径. 具体命令:cd.

  • 对python中的logger模块全面讲解

    logging模块介绍 Python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便开发者开发第三方模块或者是自己的Python应用.同样这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP.GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式.下文我将主要介绍如何使用文件方式记录log. logging模块包括logger,handler,filter,formatter这四个基本概念. logging模块与log4

  • Python中定时任务框架APScheduler的快速入门指南

    前言 大家应该都知道在编程语言中,定时任务是常用的一种调度形式,在Python中也涌现了非常多的调度模块,本文将简要介绍APScheduler的基本使用方法. 一.APScheduler介绍 APScheduler是基于Quartz的一个python定时任务框架,实现了Quartz的所有功能,使用起来十分方便.提供了基于日期.固定时间间隔以及crontab类型的任务,并且可以持久化任务. APScheduler提供了多种不同的调度器,方便开发者根据自己的实际需要进行使用:同时也提供了不同的存储机

  • python中 logging的使用详解

    日志是用来记录程序在运行过程中发生的状况,在程序开发过程中添加日志模块能够帮助我们了解程序运行过程中发生了哪些事件,这些事件也有轻重之分. 根据事件的轻重可分为以下几个级别: DEBUG: 详细信息,通常仅在诊断问题时才受到关注.整数level=10 INFO: 确认程序按预期工作.整数level=20 WARNING:出现了异常,但是不影响正常工作.整数level=30 ERROR:由于某些原因,程序 不能执行某些功能.整数level=40 CRITICAL:严重的错误,导致程序不能运行.整数

  • 详解Python中的日志模块logging

    许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net,c++中,有人们熟悉的log4cpp,而在python中,我们不需要第三方的日志组件,因为它已经为我们提供了简单易用.且功能强大的日志模块:logging.logging模块支持将日志信息保存到不同的目标域中,如:保存到日志文件中:以邮件的形式发送日志信息:以http get或post的方式提交日志到web服务器:以windows事

随机推荐