Python 日志分割

原创 2017年08月31日 23:07:35


数据增量更新的python脚本记录的日志文件越来越大,所有需要拆分,google了下,找到了例子,不过有个bug就是日志信息已经录入了日志文件了,也拆分了,但是执行python脚本的控制台上会原样打印出日志信息。


python案例代码

[huayuan] /data0/production_api/split_new/process$ more p6.py
import time  
import logging  
import logging.handlers  

logging.basicConfig()  

myapp = logging.getLogger('myapp')  
myapp.setLevel(logging.INFO)  

filehandler = logging.handlers.TimedRotatingFileHandler("logs/myapp.log", when='S', interval=3, backupCount=10)   
filehandler.suffix = "%Y-%m-%d_%H-%M-%S.log"  
myapp.addHandler(filehandler)  

for i in range(10):  
    #time.sleep(0.1)  
    time.sleep(1)
    myapp.info(str(i)+",test")  
[huayuan] /data0/production_api/split_new/process$ 

[huayuan] /


执行过程,界面上会有日志信息输出

[huayuan] /data0/production_api/split_new/process$ python p6.py
INFO:myapp:0,test
INFO:myapp:1,test
INFO:myapp:2,test
INFO:myapp:3,test
INFO:myapp:4,test
INFO:myapp:5,test
INFO:myapp:6,test
INFO:myapp:7,test
INFO:myapp:8,test
INFO:myapp:9,test
[huayuan] 


而日志文件也同时写入,且被拆分掉:

[huayuan] /data0/production_api/split_new/process$ ll logs/*
-rw-r--r-- 1 laobanzhang wheel 14 Aug 31 17:47 logs/myapp.log
-rw-r--r-- 1 laobanzhang wheel 14 Aug 31 17:47 logs/myapp.log.2017-08-31_17-47-30.log
-rw-r--r-- 1 laobanzhang wheel 21 Aug 31 17:47 logs/myapp.log.2017-08-31_17-47-33.log
-rw-r--r-- 1 laobanzhang wheel 21 Aug 31 17:47 logs/myapp.log.2017-08-31_17-47-36.log
[huayuan] /data0/production_api/split_new/process$ 


问题处理,google上查阅了下TimedRotatingFileHandler,没有找到方法,想到一个临时解决办法 >/dev/null

[huayuan] /data0/production_api/split_new/process$ rm -rf logs/*
[huayuan] /data0/production_api/split_new/process$ python p6.py 2> /dev/null
[huayuan] /data0/production_api/split_new/process$ ll logs/*
-rw-r--r-- 1 laobanzhang wheel 14 Aug 31 17:49 logs/myapp.log
-rw-r--r-- 1 laobanzhang wheel 14 Aug 31 17:49 logs/myapp.log.2017-08-31_17-49-01.log
-rw-r--r-- 1 laobanzhang wheel 21 Aug 31 17:49 logs/myapp.log.2017-08-31_17-49-04.log
-rw-r--r-- 1 laobanzhang wheel 21 Aug 31 17:49 logs/myapp.log.2017-08-31_17-49-07.log
[huayuan] /data0/production_api/split_new/process$ more logs/myapp.log.2017-08-31_17-49-07.log
5,test
6,test
7,test
[huayuan] /data0/production_api/split_new/process$ 

参考文章地址:https://docs.python.org/2/library/logging.handlers.html

python 日志模块logging学习与使用(日志分割)

在日常项目中,总是需要记录下一些细小信息或者错误码、错误信息的,这个时候就需要进行日志的操作。 python中用于日志创建、设置和记录等功能的模块,就是logging了,下面是对其基本使...
  • u012450329
  • u012450329
  • 2016年11月07日 16:51
  • 4857

python中用logging实现日志滚动和过期日志删除

之前听说python的logging库很好用,自带滚动和过期删除的功能,今天捣鼓了一下,并将自己捣鼓的过程记录下来。...
  • ashi198866
  • ashi198866
  • 2015年07月02日 14:06
  • 9414

python中logger日志模块的使用

一般,我们做一些简单的状态输出都会用print,但是这是最简单的情况下使用的工具。当我们的程序比较复杂的时候,我们会使用日志文件,特别是程序运行的时间特别久,中间可能存在一些问题,需要后面来看的时候。...
  • qtlyx
  • qtlyx
  • 2017年07月24日 20:39
  • 600

Python日志输出——logging模块

1. logging介绍         Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,H...
  • chosen0ne
  • chosen0ne
  • 2012年03月06日 00:18
  • 129144

Python 日志分割

import time import logging import logging.handlerslogging.basicConfig()myapp = logging.getLogger(‘...
  • mchdba
  • mchdba
  • 2017年08月31日 23:07
  • 517

Python脚本——Nginx日志分割

nginx日志分割
  • u013329334
  • u013329334
  • 2016年07月18日 09:43
  • 188

Nginx日志分割

偶然发现access.log有21G大,所以将其切割。 Nginx 是一个非常轻量的 Web 服务器,体积小、性能高、速度快等诸多优点。但不足的是也存在缺点,比如其产生的访问日志文件一直就是一个...
  • T37240
  • T37240
  • 2016年06月21日 16:13
  • 707

Linux日志文件分割(Logrotate)

一.概要说明 logrotate工具是为了方便进行日志管理而产生的一个工具,主要可以完成的工作包含:基于天、周、月、文件大小进行日志的滚动备份、压缩、删除甚至是发送邮件。 二.调用方式 ...
  • Smasegain
  • Smasegain
  • 2016年02月02日 14:22
  • 3531

python 日志分割器 大文本处理

最近生产环境系统出问题,为了排除问题,把日志级别开到debug。结果就一会功夫,日志瞬间增加到2g。结果太惨了,记事本和nodepad+就打不开,直接报文件太大。啊啊啊,怎么办呐?还等着分析日志找bu...
  • huangmingleiluo
  • huangmingleiluo
  • 2018年01月25日 23:08
  • 37

python切分apache日志文件

1、使用python将文件切分为两个文件 #!/usr/bin/env python # -*- coding:UTF-8 -*- import os,sys N = 0.8 lines = ope...
  • levy_cui
  • levy_cui
  • 2016年04月13日 14:29
  • 691
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python 日志分割
举报原因:
原因补充:

(最多只允许输入30个字)