📜  在 python 中制作日志文件(1)

📅  最后修改于: 2023-12-03 15:23:16.103000             🧑  作者: Mango

在 Python 中制作日志文件

在开发软件时,经常需要记录系统运行日志,以便于我们在调试时方便地查看程序的运行情况,以及维护时定位问题。Python 中的 logging 模块可以帮助我们规范地制作日志文件。

logging 模块介绍

logging 模块是 Python 标准库中内置的模块,它提供了一个灵活的方式来记录信息,包括输出到控制台、文件等。使用 logging 模块可以很好地规范你的日志输出格式以及级别,并且可以很方便地集成到你的应用中。

基本使用

下面是一个简单的使用 logging 模块的例子:

import logging

logging.basicConfig(level=logging.INFO, filename='app.log', filemode='w')

logging.info('This is an info message')
logging.warning('This is a warning')
logging.error('An error occurred')

这个例子中,我们通过 basicConfig 方法来设置日志的级别(INFO)、文件名和文件模式,然后通过 info、warning 和 error 等级别来输出不同类型的日志信息。

日志级别

logging 模块提供了不同级别的日志信息,以方便我们按照不同情况来输出不同的日志。以下是 logging 模块提供的日志级别,从低到高:

  • DEBUG:详细的日志信息,通常只在调试时使用。
  • INFO:普通的日志信息,如程序启动、连接成功等。
  • WARNING:警告信息,如磁盘将满、资源不足等。
  • ERROR:错误日志,如无法连接数据库等。
  • CRITICAL:严重错误日志,如应用程序崩溃、系统崩溃等。
日志格式

通过 logging 模块,我们可以很方便地指定日志的格式,在输出日志时会将日志信息按指定的格式打印出来。下面是 logging 模块提供的一些常用的格式符:

  • %(levelno)s:打印日志级别的数值。
  • %(levelname)s:打印日志级别的名称。
  • %(pathname)s:打印当前执行程序的路径,其实就是 sys.argv[0]。
  • %(filename)s:打印当前执行程序名。
  • %(funcName)s:打印日志的当前函数。
  • %(asctime)s:打印日志的时间。
  • %(threadName)s:打印线程名称。
  • %(message)s:打印日志信息。

使用格式符,我们可以自定义日志输出的格式,例如:

import logging

logging.basicConfig(format='%(asctime)s %(message)s', level=logging.INFO)

logging.info('This is an info message')

这个配置文件将在日志信息前面添加时间戳,并使用 INFO 级别输出日志信息。

写入到文件

通过 logging 模块,我们可以将日志信息输出到文件中,让我们方便地查看程序的运行情况和错误信息。下面是一个将日志信息写入到文件中的例子:

import logging

logging.basicConfig(filename='app.log', level=logging.INFO)

logging.info('This is an info message')

在这个例子中,我们指定了文件名并设置了日志级别为 INFO,然后通过 info 方法来输出日志信息。日志信息将被写入到指定的文件 app.log 中。

结论

Python 的 logging 模块提供了非常方便的制作日志文件的方式,可以帮助我们追踪程序的运行过程以及记录错误信息。在应用开发中,使用 logging 模块是非常必要的,建议大家尽早熟悉并使用这个模块。