我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python模块--logging

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python模块--logging

logging模块                                                                                                                           

顾名思义,用于程序日志输出,可以设置日志级别、格式、输出方式等,基本使用方法如下:


1、logging.basicConfig方式

    简单的配置,只能选择单独输出到屏幕或输出到文件,不能同时输出。例如:

#-*- coding:utf-8 -*-
#只能选择输出到屏幕或文件
import logging
logging.basicConfig(level=logging.DEBUG,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt='%a,%d %b %Y %H:%M:%S',
                    filename='test.log',
                    filemode='a')
'''
参数:
level:指定输出的日志级别
format:指定日志格式,包括:
    asctime:时间
    filename:日志归属的文件名称
    lineno:日志对应代码在归属文件中的行号
    levelname:日至最低级别,不指定默认为warning
    message:具体的日志内容,
datefmt:指定具体的时间格式,如果不指定,asctime将使用默认格式,如:2018-05-05 22:07:30,578 
filename:指定日志文件名称,可携带具体路径,不指定该参数时日志输出到屏幕
filemode:指定日志写入模式,默认为'a'表示追加,可以指定为'w'表示覆盖
'''
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')

上面例子将日志输出到test.log文件,内容:

Sat,05 May 2018 22:25:14 2.py[line:22] DEBUG debug message
Sat,05 May 2018 22:25:14 2.py[line:23] INFO info message
Sat,05 May 2018 22:25:14 2.py[line:24] WARNING warning message
Sat,05 May 2018 22:25:14 2.py[line:25] ERROR error message
Sat,05 May 2018 22:25:14 2.py[line:26] CRITICAL critical message

如果,只需要日志输出到屏幕,只需要将filename='test.log'和filemode='a'两行注释掉即可。


2、logging.getLogger方式

    完整配置,即可单独输出到屏幕或文件,也可同时输出。例如:

#-*- coding:utf-8 -*-
#日志输出更灵活,可以分别或同时输出到屏幕和文件
import logging

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

#创建一个文件输出流handler,用于写入日志文件
fm=logging.FileHandler('test1.log')

#再创建一个标准输出流handler,用于输出到屏幕
pm=logging.StreamHandler()

#创建一个日志格式对象
formatter=logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')

#为两个handler添加日志格式
fm.setFormatter(formatter)
pm.setFormatter(formatter)

#为logger对象添加handler
logger.addHandler(fm)
logger.addHandler(pm)

#设置输出日志级别,默认只输出warning以上
logger.setLevel(logging.DEBUG)

logger.debug('debug message')
logger.info('info message')
logger.warning('warning message')
logger.error('error message')
logger.critical('critical message')

上面例子,将日志同时输出到屏幕和test1.log文件,内容:

2018-05-05 22:32:52,800 3.py[line:28] DEBUG debug message
2018-05-05 22:32:52,800 3.py[line:29] INFO info message
2018-05-05 22:32:52,800 3.py[line:30] WARNING warning message
2018-05-05 22:32:52,800 3.py[line:31] ERROR error message
2018-05-05 22:32:52,800 3.py[line:32] CRITICAL critical message

logger.addHandler()决定日志输出方向,如果只输出到某一方面,可以将另一行注释掉。


3、具体应用

#!/usr/local/python-3.4/bin/python3.4
#-*- coding:utf-8 -*-
import urllib.request
import time
import logging
#这里用于请求某个url,并返回状态码
my_url='http://172.16.1.20:8080/bizmon/BIZServlet?BizCode=DX0001&BatchId=%s' %(int(time.time()))
def url_request():
    url_response=urllib.request.urlopen(my_url)
    url_code=url_response.code
    return url_code
#定义自己的日志函数
def get_log():
    logger=logging.getLogger()
    fh=logging.FileHandler('test.log')
    ph=logging.StreamHandler()
    formatter=logging.Formatter('%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')
    fh.setFormatter(formatter)
    logger.addHandler(fh)
    # logger.addHandler(ph)
    logger.setLevel(logging.INFO)
    return logger

if __name__ == "__main__":
    my_log=get_log()
    try:
        code=url_request()
    except Exception:
        my_log.error("%s request failed!"%(my_url),exc_info=True)    #捕获异常,输出到日志中
    else:
        my_log.info("%s request successful! code is %s"%(my_url,code))    #正常日志

日志内容:

2018-05-07 19:41:41,575 16.py[line:28] ERROR http://172.16.1.20:8080/bizmon/BIZServlet?BizCode=DX0001&BatchId=1525693301 request failed!
Traceback (most recent call last):
  File "C:/Users/Administrator/PycharmProjects/first/16.py", line 26, in <module>
    code=url_request()
  File "C:/Users/Administrator/PycharmProjects/first/16.py", line 8, in url_request
    url_response=urllib.request.urlopen(my_url)
  File "C:\Python3.6\lib\urllib\request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Python3.6\lib\urllib\request.py", line 532, in open
    response = meth(req, response)
  File "C:\Python3.6\lib\urllib\request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python3.6\lib\urllib\request.py", line 570, in error
    return self._call_chain(*args)
  File "C:\Python3.6\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "C:\Python3.6\lib\urllib\request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500: Internal Server Error

在捕获异常时,

my_log.error("%s request failed!"%(my_url),exc_info=True)也可写成:my_log.exception("%s request failed!"%(my_url))


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python模块--logging

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python - logging模块

logging模块两种配置日志输出格式:1、输出如下:2、第二种方式如下:注意logger = logging.getLogger() 不带参数默认是root用户。logger1 = logging.getLogger('mylog')
2023-01-31

python模块--logging

logging模块                                                                                                              
2023-01-31

Python logging模块

logging模块是Python的一个标准库模块,开发过程中,可以通过该模块,灵活的完成日志的记录。logging模块提供了两种记录日志的方式:    1)使用logging提供的模块级别的函数(logging.basicConfig,lo
2023-01-31

python logging 模块

python logging模块 import sys  import logging    #首先获得一个类  logger = logging.getLogger('example') #example为名字 logger.setLev
2023-01-31

Python 日志模块logging

logging模块:logging是一个日志记录模块,可以记录我们日常的操作。logging日志文件写入默认是gbk编码格式的,所以在查看时需要使用gbk的解码方式打开。logging日志等级:CRITICAL(50) > ERROR(40
2023-01-30

Python Logging 模块完全解

Python 中的 logging 模块可以让你跟踪代码运行时的事件,当程序崩溃时可以查看日志并且发现是什么引发了错误。Log 信息有内置的层级——调试(debugging)、信息(informational)、警告(warnings)、错
2023-01-31

logging模块

一 日志级别:CRITICAL = 50 #FATAL = CRITICALERROR = 40WARNING = 30 #WARN = WARNINGINFO = 20DEBUG = 10NOTSET = 0 #不设置二 默认级别为war
2023-01-30

python之logging模块使用

#!/usr/bin/env python# encoding: utf-8import logging#定义handler的输出格式formatter=logging.Formatter('%(asctime)s--%(name)s--%
2023-01-31

python标准库--logging模块

logging模块的几个级别,默认情况下Logging模块有6个级别,代码如下#!/usr/bin/envpython#coding:utf-8__author__=www.py3study.comimportloggingprint(lo
2023-01-30

python的logging模块详解

日志级别>>>import logging>>>logging.NOTSET0>>>logging.DEBUG10>>>logging.INFO20>>>logging.WARN30>>>logging.ERROR40>>>logging.
2023-01-31

python logging模块打印lo

可能我们经常会使用print来输出信息到窗口,但当我们有很多个py文件需要运行,项目比较庞大的到时候,print简直就是太low了点了。那么我们可以使用强大的logging模块,把输出到指定的本地pc某个路径的文件中。一、 loggi
2023-01-31

python 日志模块logging学习

在日常项目中,总是需要记录下一些细小信息或者错误码、错误信息的,这个时候就需要进行日志的操作。python中用于日志创建、设置和记录等功能的模块,就是logging了,下面是对其基本使用方法的介绍:一、最最简单的使用方法:import lo
2023-01-31

python logging模块按日期打

官网https://docs.python.org/2/library/logging.html文档一 简单日志打印:import logginglogging.basicConfig(level=logging.DEBUG,
2023-01-31

python logging日志模块怎么用

这篇文章主要讲解了“python logging日志模块怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python logging日志模块怎么用”吧!1.日志简介说到日志,无论是写框架
2023-06-29

python logging日志模块的详解

python logging日志模块的详解 日志级别日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL。 DEBUG:详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期运行 W
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录