广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python模块--logging
  • 728
分享到

python模块--logging

模块pythonlogging 2023-01-31 02:01:11 728人浏览 安东尼

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))


--结束END--

本文标题: python模块--logging

本文链接: https://www.lsjlt.com/news/185868.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Python - logging模块
    logging模块两种配置日志输出格式: 1、 输出如下: 2、 第二种方式如下: 注意 logger = logging.getLogger() 不带参数默认是root用户。 logger1 = logging.getL...
    99+
    2023-01-31
    模块 Python logging
  • Python logging模块
    logging模块是Python的一个标准库模块,开发过程中,可以通过该模块,灵活的完成日志的记录。 logging模块提供了两种记录日志的方式:    1)使用logging提供的模块级别的函数(logging.basicConfig,...
    99+
    2023-01-31
    模块 Python logging
  • python logging 模块
    python logging模块   import sys  import logging    #首先获得一个类  logger = logging.getLogger('example') #example为名字 logger.setL...
    99+
    2023-01-31
    模块 python logging
  • python模块--logging
    logging模块                                                                                                               ...
    99+
    2023-01-31
    模块 python logging
  • Python的Logging模块
    1.日志的相关概念🍃 日志是指记录系统或应用程序运行状态、事件和错误信息的文件或数据。在计算机系统中,日志通常用于故障排除、性能分析、安全审计等方面。日志可以记录各种信息,如系统启动...
    99+
    2023-09-17
    服务器 linux python
  • Python 日志模块logging
    logging模块: logging是一个日志记录模块,可以记录我们日常的操作。 logging日志文件写入默认是gbk编码格式的,所以在查看时需要使用gbk的解码方式打开。 logging日志等级:CRITICAL(50) > E...
    99+
    2023-01-30
    模块 日志 Python
  • logging模块
    一 日志级别: CRITICAL = 50 #FATAL = CRITICAL ERROR = 40 WARNING = 30 #WARN = WARNING INFO = 20 DEBUG = 10 NOTSET = 0 #不设置 ...
    99+
    2023-01-30
    模块 logging
  • Python基础之hashlib模块subprocess模块logging模块
    目录一、hashlib模块基本操作与用法二、subprocess模块简介基本操作与用法三、logging模块简介基本操作与用法一、hashlib模块 什么是哈希模块: hashlib...
    99+
    2022-11-11
  • python标准库--logging模块
    logging模块的几个级别,默认情况下Logging模块有6个级别,代码如下#!/usr/bin/env python # coding: utf-8 __author__ = '...
    99+
    2023-01-30
    模块 标准 python
  • python的logging模块详解
    日志级别>>>import logging >>>logging.NOTSET 0 >>>logging.DEBUG 10 >>>logging.INFO 20 >...
    99+
    2023-01-31
    详解 模块 python
  • Python Logging 模块完全解
    Python 中的 logging 模块可以让你跟踪代码运行时的事件,当程序崩溃时可以查看日志并且发现是什么引发了错误。Log 信息有内置的层级——调试(debugging)、信息(informational)、警告(warnings)、错...
    99+
    2023-01-31
    模块 Python Logging
  • python之logging模块使用
    #!/usr/bin/env python # encoding: utf-8 import logging #定义handler的输出格式 formatter=logging.Formatter('%(asctime)s--%(name)...
    99+
    2023-01-31
    模块 python logging
  • python logging模块打印lo
    可能我们经常会使用print来输出信息到窗口,但当我们有很多个py文件需要运行,项目比 较庞大的到时候,print简直就是太low了点了。那么我们可以使用强大的logging模块,把 输出到指定的本地pc某个路径的文件中。 一、 lo...
    99+
    2023-01-31
    模块 python logging
  • Python日志模块logging用法
    一、概述 步骤 创建logger对象创建handler对象创建formatter对象把formatter绑定到handler对象上把handler对象绑定到logger对象上设置级别...
    99+
    2022-11-11
  • 详解 python logging日志模块
    目录1.日志简介2.日志级别3.修改日志级别4.日志记录到文件5.指定日志格式6.记录器(logger)7.处理器(Handler)8.处理器操作9.格式器(formatter)10...
    99+
    2022-11-12
  • python 日志模块logging学习
           在日常项目中,总是需要记录下一些细小信息或者错误码、错误信息的,这个时候就需要进行日志的操作。 python中用于日志创建、设置和记录等功能的模块,就是logging了,下面是对其基本使用方法的介绍: 一、最最...
    99+
    2023-01-31
    模块 日志 python
  • python logging模块按日期打
    官网https://docs.python.org/2/library/logging.html文档 一 简单日志打印: import logging logging.basicConfig(level=logging.DEBUG...
    99+
    2023-01-31
    模块 按日 python
  •  Python中logging模块如何使用
    这篇文章主要讲解了“ Python中logging模块如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ Python中logging模块如何使用”吧!1.为什么要用...
    99+
    2023-06-29
  • python logging日志模块的详解
    python logging日志模块的详解 日志级别 日志一共分成5个等级,从低到高分别是:DEBUG INFO WARNING ERROR CRITICAL。 DEBUG:详细的信息,通常只出现在诊断...
    99+
    2022-06-04
    详解 模块 日志
  • Python 中 logging 模块使用详情
    目录1.为什么要用logging模块2.logging模块介绍3.基础设置1.为什么要用logging模块 在实际应用中,日志文件十分重要,通过日志文件,我们知道程序运行的细节;同时...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作