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了,下面是对其基本使...

Python HashCode 分库分表逻辑

def longToInt(value): assert isinstance(value, (int, long)) return int(value & sys.m...

SQL SERVER作业管理数据库

作业管理自动处理一个任务的第一步是创建对应的作业,作业可以使用两种工具来创建,即创建作业向导和SQL Server 企业管理器。创建作业最容易的方法是使用创建作业向导,一般来说,如果要创建作业,必须执...

天山飞侠8概要 紫郢㊣评注 会师长尝美食 谒山主得特许

天山飞侠8概要 紫郢㊣评注 会师长尝美食 谒山主得特许第八回一旅望中兴 此地有崇山峻岭 沃野森林 夏屋良田 琪花瑶草几人存正朔 其中多孝子忠臣 遗民志士 英雄豪杰 奇侠飞仙陆萍带柳春入谷,见了师父周谦...

mysqldump的single-transaction

先看一下--lock-tables和--lock-all-tables  --lock-all-tables 一次性锁定所有数据库的所有表,在整个dump期间一直获取global read...

MySQL主从复制实战 - 基于GTID的复制

MySQL主从复制实战 - 基于GTID的复制基于GTID的复制简介基于GTID的复制是MySQL 5.6后新增的复制方式.GTID (global transaction identifier) 即...

理解innodb的锁(record,gap,Next-Key lock)

Record lock 单条索引记录上加锁,record lock锁住的永远是索引,而非记录本身,即使该表上没有任何索引,那么innodb会在后台创建一个隐藏的聚集主键索引,那么锁住的就是这个隐藏的聚...

mysql在Windows下使用mysqldump命令备份数据库

本文章介绍了备份MySQL中数据需要进行的配置,和备份数据的简单流程和代码,对于刚接触mysqldump的朋友很有帮助。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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