Python的一个内置标准库,用于实现对日志的控制输出
import logging
import datetime
# filename:设置日志输出文件,以天为单位输出到不同的日志文件,以免单个日志文件日志信息过多,
# 日志文件如果不存在则会自动创建,但前面的路径如log文件夹必须存在,否则会报错
log_file = 'log/sys_%s.log' % datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d')
# level:设置日志输出的最低级别,即低于此级别的日志都不会输出
# 在平时开发测试的时候可以设置成logging.debug以便定位问题,但正式上线后建议设置为logging.WARNING,既可以降低系统I/O的负荷,也可以避免输出过多的无用日志信息
log_level = logging.WARNING
# format:设置日志的字符串输出格式
log_format = '%(asctime)s[%(levelname)s]: %(message)s'
logging.basicConfig(filename=log_file, level=logging.WARNING, format=log_format)
logger = logging.getLogger()
# 以下日志输出由于level被设置为了logging.WARNING,所以debug和info的日志不会被输出
logger.debug('This is a debug message!')
logger.info('This is a info message!')
logger.warning('This is a warning message!')
logger.error('This is a error message!')
logger.critical('This is a critical message!')
logging.basicConfig:用于对logging模块整个日志输出的一次性配置,也就是说多次配置时以第一次配置的为准,之后再使用basicConfig进行配置则无效。
logging.basicConfig的参数:
filename:设置日志输出的文件,默认输出到控制台。
filemode:设置打开日志文件的方式,默认为“a”,即追加。
format:设置日志输出的字符串格式,具体的格式有如下几种:
%(name)s:日志记录器的名称
%(levelno)s:日志级别数值
%(levelname)s:日志级别名称
%(pathname)s:输出日志时当前文件的绝对路径
%(filename)s:输出日志时当前文件名(包含后缀)
%(module)s:输出日志时的模块名(即%(filename)s不包含后缀名)
%(funcName)s:输出日志时所在函数名
%(lineno)d:输出日志时在文件中的行号
%(asctime)s:输出日志时的时间
%(thread)d:输出日志的当前线程ID
%(threadName)s:输出日志的当前线程名称
%(process)s:输出日志的当前进程ID
%(processName)s:输出日志的当前进程名称
%(message)s:输出日志的内容
datefmt:设置日志时间字符串的输出格式,默认时间字符串格式为%Y-%m-%d %H:%M:%S。
style:设置format字符串格式化的风格,可以是“%”,“{”或“$”,默认是“%”。
level:设置日志的级别,具体有以下几种(由高到低):
CRITICAL:致命错误
ERROR:严重错误
WARNING:需要给出的提示
INFO:一般的日志信息
DEBUG:在debug过程中的debug信息
stream:指定日志的输出Stream,可以是sys.stderr,sys.stdout或者是文件
使用Handler将日志同时输出到文件和控制台
# 设置此logger的最低日志级别,之后添加的Handler级别如果低于这个设置,则以这个设置为最低限制
logger = logging.getLogger()
logger.setLevel(logging.INFO)
# 创建一个FileHandler,将日志输出到文件
log_file = 'log/sys_%s.log' % datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d')
file_handler = logging.FileHandler(log_file)
# 设置此Handler的最低日志级别
file_handler.setLevel(logging.WARNING)
# 设置此Handler的日志输出字符串格式
log_formatter = logging.Formatter('%(asctime)s[%(levelname)s]: %(message)s')
file_handler.setFormatter(log_formatter)
# 创建一个StreamHandler,将日志输出到Stream,默认输出到sys.stderr
stream_handler = logging.StreamHandler()
stream_handler.setLevel(logging.INFO)
# 将不同的Handler添加到logger中,日志就会同时输出到不同的Handler控制的输出中
# 注意如果此logger在之前使用basicConfig进行基础配置,因为basicConfig会自动创建一个Handler,所以此logger将会有3个Handler
# 会将日志同时输出到3个Handler控制的输出中
logger.addHandler(file_handler)
logger.addHandler(stream_handler)
from logging import FileHandler: 以“a”(追加)的方式将日志输出到文件,如果文件不存在,则自动创建该文件。
from logging import StreamHandler: 将日志输出到Stream,比如sys.stderr、sys.stdour、文件流等。
from logging.handlers import RotatingFileHandler: 将日志输出到文件,可以通过设置文件大小,文件达到上限后自动创建一个新的文件来继续输出文件。
from logging.handlers import TimedRotatingFileHandler: 将日志输出到文件,可以通过设置时间,使日志根据不同的时间自动创建并输出到不同的文件中。
from logging.handlers import HTTPHandler: 将日志发送到一个HTTP服务器。
from logging.handlers import SMTPHandler: 将日志发送到一个指定的邮件地址。
分享到:
相关推荐
**Python-Logbook:超越内置logging库的日志管理利器** 在Python编程中,日志记录是必不可少的功能,它有助于开发者追踪程序运行状态、错误信息以及调试过程中的关键数据。Python自带了一个内置的`logging`模块,它...
Python内置的`logging`模块提供了一种简单且灵活的方式来记录应用程序运行过程中的事件。通过合理配置`logging`模块,可以轻松实现对程序运行状态的监控,从而帮助开发者定位问题和优化性能。 #### 二、基本概念与...
Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志...
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而...
首先,`logging_helper`是一个强大的辅助工具,它扩展了Python内置的`logging`模块,使其更易于配置和使用。Python的`logging`模块本身已经相当完善,但`logging_helper`进一步简化了日志记录的配置过程,使得初学者...
`logging` 是 Python 内置的一个用于日志记录的标准库。它提供了多种日志级别,包括 `DEBUG`, `INFO`, `WARNING`, `ERROR`, 和 `CRITICAL`。这些级别按照严重性递增排序。通常情况下,开发者会在代码中插入日志语句...
mylogging-1.1.0是该库的一个版本,包含了对日志处理的全面支持,使得开发者能够更好地理解和控制他们的应用程序日志。 mylogging库的核心特性包括: 1. **层次结构设计**:mylogging库采用层次结构的设计,允许...
总的来说,`el_logging`是一个针对Python的后端开发优化的日志库,旨在提高日志处理的效率和便利性,为开发者提供更强大的日志管理解决方案。通过了解并掌握`el_logging`的使用,可以提升开发和维护大型复杂系统的...
2. **使用第三方库**:Python有许多优秀的日志处理库,如`logging`(Python内置)、`colorlog`、`coloredlogs`等,它们提供了更丰富的功能和更美观的输出。 - `logging`库是Python的标准日志模块,可以设置不同...
6. **logging**:Python内置的日志模块,可用于记录程序本身的日志。 在实现过程中,还需要关注性能优化,如并发处理、异步I/O和内存管理。此外,安全性也很重要,比如加密传输、访问控制和日志审计。 最后,整理...
`logging`模块是Python的标准库之一,它提供了一种灵活的日志处理机制。通过使用不同的日志级别,开发者可以选择性地记录信息。常见的日志级别包括DEBUG、INFO、WARNING、ERROR和CRITICAL。 #### 二、日志记录到...
本文实例讲述了Python内置模块logging用法。分享给大家供大家参考,具体如下: 1、将日志直接输出到屏幕 import logging logging.debug('This is debug message') logging.info('This is info message') logging....
**Python内置logging模块** Python标准库中的`logging`模块是用于生成日志信息的工具,它支持不同级别的日志记录(如DEBUG、INFO、WARNING、ERROR、CRITICAL),以及自定义日志格式、日志处理器和过滤器。通过`...
`logging` 模块是 Python 内置的一个强大且灵活的日志处理工具,它支持多种日志级别和日志记录方式。下面详细介绍其核心组件: 1. **Logger**: 日志记录者,用于记录日志。可以通过 `logging.getLogger(name)` 获取...
Python的内置`logging`模块提供了一套基础的日志处理框架,但有时开发者会寻找更定制化或功能更丰富的解决方案,这正是第三方库如gumo-logging可能提供的。 `gumo-logging-0.0.1.tar.gz`是一个压缩包,文件格式为...
在实际应用中,我们通常会创建一个或多个logger对象,每个logger可以有自己的日志处理程序。例如,我们可以为每个模块或类创建一个logger,以便更好地追踪错误来源。使用`logger.info()`、`logger.warning()`等方法...
python-logging-rabbitmq 日志处理程序将日志发送到RabbitMQ。 与Django兼容。安装使用pip安装。pip install python_logging_rabbitmq版本号版本相依性> = 2.x 皮卡> = 0.13 <= 1.1.1 皮卡<= 0.10处理程序该...
本文将详细介绍Python logging日志模块,并且探讨在多进程环境下使用logging进行日志记录的方法以及如何安全地切分日志文件。 首先,我们来看一下logging模块的四个基本组成部分: 1. Loggers:程序可以直接调用的...