Python同时向控制台和文件输出日志logging的方法

确保在Python的标准库中导入logging模块。

import logging

接下来创建一个logger对象实例化。

logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)

这里,我们将我们的日志器记录器设置为记录所有级别的消息。您可以选择其他级别作为参数。例如:INFO,WARNING,ERROR。

然后,再创建一个handler,将日志记录到控制台。

console_handler = logging.StreamHandler() # 创建一个控制台输出的日志处理器,用于输出到控制台
console_handler.setLevel(logging.DEBUG) # 可以设置输出等级,这里输出所有等级的日志

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

console_handler.setFormatter(formatter) # 给控制台日志处理器绑定日志格式,就会往控制台打印日志,符合某个等级的日志就就会输出到控制台

logger.addHandler(console_handler) # 日志记录器添加该控制台日志处理器

在上述代码中,我们使用Formatter类将日志格式化。可以根据需求定义自己的日志格式。

例如,‘%(asctime)s - %(name)s - %(levelname)s - %(message)s’的含义:

  • asctime: 将日志时间转换格式;
  • name: 记录器名称;
  • levelname: 日志等级名称;
  • message: 实际日志内容。

现在,如果想将日志记录到文件中,我们可以添加另一个handler,使日志输出到文件中。

file_handler = logging.FileHandler('example.log') # 创建一个日志文件处理器,可以将日志保存到文件中
file_handler.setLevel(logging.DEBUG)

file_handler.setFormatter(formatter) # 给文件日志处理器绑定日志格式,就会往日志文件写入符合某个等级的日志记录

logger.addHandler(file_handler) # 日志记录器添加该文件日志处理器

在每次进行日志记录时,我们只需要使用打印语句,将日志信息记录到我们的logger中,然后它将自动将日志信息记录到两个位置—— 控制台和文件中。

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

完整示例代码:

import logging

def main():
    logger = logging.getLogger('my_logger')
    logger.setLevel(logging.DEBUG)

    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.DEBUG)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    console_handler.setFormatter(formatter)
    logger.addHandler(console_handler)

    file_handler = logging.FileHandler('example.log')
    file_handler.setLevel(logging.DEBUG)
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)

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

if __name__ == '__main__':
  main()

输出例子:

  • 控制台
2021-07-30 16:12:42,699 - my_logger - DEBUG - debug message
2021-07-30 16:12:42,699 - my_logger - INFO - info message 
2021-07-30 16:12:42,700 - my_logger - WARNING - warning message 
2021-07-30 16:12:42,700 - my_logger - ERROR - error message 
2021-07-30 16:12:42,700 - my_logger - CRITICAL - critical message 
  • 日志文件 example.log
2021-07-30 16:12:42,699 - my_logger - DEBUG - debug message
2021-07-30 16:12:42,699 - my_logger - INFO - info message 
2021-07-30 16:12:42,700 - my_logger - WARNING - warning message 
2021-07-30 16:12:42,700 - my_logger - ERROR - error message 
2021-07-30 16:12:42,700 - my_logger - CRITICAL - critical message 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python同时向控制台和文件输出日志logging的方法 - Python技术站

(0)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • 详解Python 重学requests发起请求的基本方式

    以下是关于Python重学requests发起请求的基本方式的攻略: 详解Python重学requests发起请求的基本方式 requests是一个流行的HTTP库,用于向Web服务器发送HTTP请求和接收响应。以下是Python重学requests发起请求的基本方式的攻略: 发送GET请求 以下是使用requests库发送GET请求的示例: import …

    python 2023年5月14日
    00
  • 如何在Python中计算置信区间

    在Python中计算置信区间需要掌握相关的统计知识和使用Python中的统计库。以下是计算置信区间的完整攻略: 1. 确定置信水平和样本量 在计算置信区间前,首先需要确定置信水平和样本量,置信水平可以是90%、95%、99%等,样本量则要根据实际情况来确定。 2. 导入Python统计库 Python中有很多统计库可供选择,这里以scipy.stats为例,…

    python-answer 2023年3月25日
    00
  • 利用Python 实现分布式计算

    利用Python实现分布式计算 什么是分布式计算 分布式计算是指将一个计算任务分成若干个小的计算任务,分配给多个计算节点同时计算,从而实现更快速、更高效地完成计算任务的一种计算方式。它不仅可以大幅提升计算速度,还具有更好的容错性和可伸缩性等优势。 分布式计算的实现方法 利用Python实现分布式计算通常可以采用以下方法: 使用Python自带的multipr…

    python 2023年5月19日
    00
  • python中bs4.BeautifulSoup的基本用法

    BeautifulSoup是一个Python库,用于解析HTML和XML文档,并提供了一些方便的方法来获取和操作文档中的元素。本文将详细讲解bs4.BeautifulSoup的基本用法,包括两个示例。 示例一:解析HTML文档 以下是一个示例代码,演示如何使用bs4.BeautifulSoup解析HTML文档: from bs4 import Beautif…

    python 2023年5月15日
    00
  • 分享10个有趣的Python程序

    下面是详细的“分享10个有趣的Python程序”的攻略: 一、介绍 本文将分享10个有趣的Python程序,这些程序不仅可以帮助你提高Python编程技能,还能让你学习到各种Python库和工具的用法,提升你的编程体验。 二、程序列表 爬取天气预报:使用Python的requests库和BeautifulSoup库,爬取某城市的天气预报数据,并将其可视化。 …

    python 2023年5月19日
    00
  • Python实现批量采集商品数据的示例详解

    Python实现批量采集商品数据的示例详解 在电商行业,我们经常需要采集大量商品数据。本文将介绍如何使用Python实现批量采集商品数据,包括如何使用requests库发送HTTP请求、如何使用BeautifulSoup库解析HTML响应、如何使用pandas库将数据保存到CSV文件中,并提供两个示例代码。 步骤1:导入必要的库 在使用Python实现批量采…

    python 2023年5月15日
    00
  • Python 使用和高性能技巧操作大全

    Python使用和高性能技巧操作大全 本攻略旨在帮助Python开发者更好地使用Python和提升程序的性能,以下为几个方面的具体内容: Python基本语法 Python是一门非常易学易用的语言,以下是几个Python基本语法: 命名方式 Python使用下划线命名法,例如: my_variable = 10 缩进 Python使用缩进表示代码块,例如: …

    python 2023年5月13日
    00
  • 利用pyecharts实现地图可视化的例子

    下面是利用pyecharts实现地图可视化的完整攻略。 简介 pyecharts是一个基于echarts制作图表的python库,支持多种类型的图表,包括但不限于折线图、散点图、地图等。 地图可视化是pyecharts中的一个重要应用,可以快速绘制各个国家和地区的地图,并支持数据可视化展示。 安装 安装pyecharts的方法如下: !pip install…

    python 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部