在Python中,使用logging模块进行日志记录非常方便。其中,basicConfig()函数是logging模块中最基本的配置函数,用于设置日志记录的基本配置。
basicConfig()函数的语法如下:
logging.basicConfig(**kwargs)
参数说明:
-
filename:日志输出的文件名。如果指定了该参数,则日志会输出到文件中,而不是默认的输出到控制台。
-
filemode:日志文件的打开模式,默认为'a',表示追加写入。也可以指定为'w',表示覆盖写入。
-
format:日志输出的格式。可以使用特定的占位符来指定日志的输出内容和格式。
-
datefmt:日期格式化字符串。如果指定了该参数,则会将日志中的日期按照指定的格式进行格式化。
-
level:日志的输出级别。可以设置为DEBUG、INFO、WARNING、ERROR、CRITICAL等级别。
-
stream:日志输出的流。可以指定为sys.stdout、sys.stderr或者文件对象。
-
style:格式化字符串的样式。可以设置为'%'、'{'或者'$'。默认为'%'。
下面是一个使用basicConfig()函数的示例:
import logging logging.basicConfig( filename='example.log', filemode='w', format='%(asctime)s %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s', level=logging.WARNING ) logging.debug('This is a debug message') logging.info('This is an info message') logging.warning('This is a warning message') logging.error('This is an error message') logging.critical('This is a critical message')
这个示例中,我们将日志输出到名为example.log的文件中,使用覆盖写入模式。日志的格式为"[时间] - [级别] - [消息]",例如"2021-01-01 12:00:00 - DEBUG - This is a debug message"。日志的输出级别为DEBUG,所以所有级别的日志都会被记录。
要按照日志文件大小进行分文件,可以使用RotatingFileHandler类来实现。RotatingFileHandler类是logging模块提供的一个日志处理器,它可以在日志文件达到一定大小时自动创建一个新的日志文件。
下面是一个示例代码,演示如何按照日志文件大小分文件:
import logging from logging.handlers import RotatingFileHandler # 创建一个RotatingFileHandler对象,设置日志文件名、文件大小和备份文件个数 handler = RotatingFileHandler(filename='example.log', maxBytes=1024, backupCount=3) # 设置日志输出格式 formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) # 创建一个Logger对象,并将RotatingFileHandler对象添加到Logger中 logger = logging.getLogger() logger.addHandler(handler) # 设置日志级别 logger.setLevel(logging.DEBUG) # 输出日志信息 logger.debug('This is a debug message') logger.info('This is an info message') logger.warning('This is a warning message') logger.error('This is an error message') logger.critical('This is a critical message')