我是靠谱客的博主 风中凉面,最近开发中收集的这篇文章主要介绍python 根据时间截取日志内容_python按日志时间与按日志大小切分日志,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

python按日志时间与按日志大小切分日志

2018-09-15

有一种简便方法实现按日志时间与按日志大小对日志进行切分,即通过python配置文件实现。

该配置文件分为三个部分。

第一部分定义日志模块及其实现。如下面代码所示,下面代码定义了三个日志配置名root,example及example01。

###############################################

[loggers]

keys=root,example,example01

#--------------------------------------------------

# 实现上面定义的logger模块,必需是[logger_xxxx]这样的形式

#--------------------------------------------------

# [logger_xxxx] logger_模块名称

# level     级别,级别有DEBUG、INFO、WARNING、ERROR、CRITICAL

# handlers  处理类,可以有多个,用逗号分开,实现见第二部分

# qualname  logger名称,应用程序通过 logging.getLogger获取。对于不能获取的名称,则记录到root模块。

# propagate 是否继承父类的log信息,0:否 1:是

[logger_root]

level=DEBUG

handlers=consoleHandler,rotateFileHandler

[logger_example]

level=DEBUG

handlers=consoleHandler,rotateFileHandler

qualname=example

propagate=0

[logger_example01]

level=DEBUG

handlers=consoleHandler,timedrotateFileHandler

qualname=example01

propagate=0

###############################################

第二部分定义每个模块的Handler。其中rotateFileHandler用来根据日志文件大小进行切分,而timedrotateFileHandler则根据时间进行日志切分。

###############################################

#--------------------------------------------------

# handler

#--------------------------------------------------

# [handler_xxxx]

# class handler类名

# level 日志级别

# formatter 日志格式,见第三部分

# args handler初始化函数参数

[handlers]

keys=consoleHandler,rotateFileHandler,timedrotateFileHandler

[handler_consoleHandler]

class=StreamHandler

level=DEBUG

formatter=simpleFormatter

args=(sys.stdout,)

[handler_rotateFileHandler]

class=handlers.RotatingFileHandler

level=DEBUG

formatter=simpleFormatter

args=("test.log", "a", 1000, 9)

[handler_timedrotateFileHandler]

class=handlers.TimedRotatingFileHandler

level=DEBUG

formatter=form02

args=("upload.log","midnight", 1)

###############################################

第三部分定义日志格式,下面定义了两种日志格式。

###############################################

#--------------------------------------------------

# 日志格式

#--------------------------------------------------

# %(asctime)s       年-月-日 时-分-秒,毫秒 2013-04-26 20:10:43,745

# %(filename)s      文件名,不含目录

# %(pathname)s      目录名,完整路径

# %(funcName)s      函数名

# %(levelname)s     级别名

# %(lineno)d        行号

# %(module)s        模块名

# %(message)s       消息体

# %(name)s          日志模块名

# %(process)d       进程id

# %(processName)s   进程名

# %(thread)d        线程id

# %(threadName)s    线程名

[formatters]

keys=simpleFormatter,form01

[formatter_simpleFormatter]

format=[%(asctime)s](%(levelname)s)%(name)s : %(message)s

[formatter_form01]

format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s

datefmt=%a, %d %b %Y %H:%M:%S

###############################################

测试代码如下,假设上述配置文件名为logger.conf。

#-*- coding:utf-8 -*-

import logging

import logging.config

# from logging.handlers import RotatingFileHandler

logging.config.fileConfig("logger.conf")

# example01为根据日志大小切分日志的配置名

logger = logging.getLogger("example01")

logger.debug("This is debug message")

logger.info("This is info message")

logger.warning("This is warning message")

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。

http://www.pinlue.com/style/images/nopic.gif

最后

以上就是风中凉面为你收集整理的python 根据时间截取日志内容_python按日志时间与按日志大小切分日志的全部内容,希望文章能够帮你解决python 根据时间截取日志内容_python按日志时间与按日志大小切分日志所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部