python实现日志按天分割


Posted in Python onJuly 22, 2019

本文实例为大家分享了python实现日志按天分割的具体代码,供大家参考,具体内容如下

日志格式:

1.1.1.1 - - [30/Apr/2015:00:34:55 +0800] “POST /iDataService/services/MemRoomService HTTP/1.0” 200 405 “-” “Axis/1.4” “-”
1.1.1.1 - - [30/Apr/2015:00:34:55 +0800] “POST /iDataService/services/CutLoginService HTTP/1.1” 200 438 “-” “Apache CXF 2.7.8” “-”
1.1.1.1 - - [20/Apr/2015:00:34:55 +0800] “POST /iDataService/services/NoticeListService HTTP/1.1” 200 656 “-” “Apache CXF 2.7.8” “-”
1.1.1.1 - - [30/Apr/2016:00:34:56 +0800] “POST /iDataService/services/MemSelfQueryService HTTP/1.0” 200 1344 “-” “Axis/1.4” “-“

分割要求:

对日子进行按天分割,文件名称如access.log-20160101

#!/usr/bin/env python
 # -- conding:utf-8 -- 
 #
import os
import time

path1='/lianxi/python/split/lianxi1'
file=open(path1,'r')

for line in file:
  str=line.split()[3]
  otime=str[1:12]

  time_jieshu = time.strptime(otime, '%d/%b/%Y')
  time_jieshu = int(time.mktime(time_jieshu))
  ntime=time.strftime('%Y%m%d',time.localtime(time_jieshu))
 #  print ntime

  log_file='/lianxi/python/split/access.log-%s' %ntime

  with open(log_file,'a') as f:
    if not os.path.exists(log_file):
      os.mknod(log_file)
 #      f.write(line)
 #    else:
    f.write(line)
    f.close()
#!/usr/bin/python
#coding=utf-8
#author lyk
import re,os,commands
a=open('/python/access.log','r')
exc_month={'Apr':'04','Aug':'08','Dec':'12','Feb':'02','Jan':'01','Jul':'07','Jun':'06','Mar':'03','May':'05','Nov':'11','Oct':'10','Sep':'09'}
def touch_file():
  blist=[]
  commands.getoutput('rm -rf /accesslog/*')
  for i in a:
    blist.append(re.findall(r"\[(.+?):",i)[0])
  new_blist=[]
  for j in blist:
      if j.replace('/','.') not in new_blist:
        new_blist.append(j.replace('/','.'))
  for j in new_blist:
    commands.getoutput('touch /accesslog/access.log-%s'%(j[7:17]+exc_month[j[3:6]]+j[0:2]))
def append_file():
  for i in a:
    mfile=re.findall(r"\[(.+?):",i)[0].replace('/','')
    f=open("/accesslog/access.log-"+mfile[5:9]+exc_month[mfile[2:5]]+mfile[0:2],'a')
    f.write(i)
    f.close()
def tar_file():
  for i in commands.getoutput('ls /accesslog').splitlines():
    commands.getoutput("gzip /accesslog/%s"%i)

if __name__=='__main__':
  touch_file()
  append_file()
  tar_file()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现在windows下操作word的方法
Apr 28 Python
Python中基础的socket编程实战攻略
Jun 01 Python
Python中input与raw_input 之间的比较
Aug 20 Python
python3 pillow生成简单验证码图片的示例
Sep 19 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 Python
Python中is和==的区别详解
Nov 15 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
Jul 02 Python
Python实现邮件发送的详细设置方法(遇到问题)
Jan 18 Python
python re.sub()替换正则的匹配内容方法
Jul 22 #Python
简单了解python gevent 协程使用及作用
Jul 22 #Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 #Python
python+logging+yaml实现日志分割
Jul 22 #Python
python删除列表元素的三种方法(remove,pop,del)
Jul 22 #Python
python Gunicorn服务器使用方法详解
Jul 22 #Python
python实现按行分割文件
Jul 22 #Python
You might like
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
2015/12/19 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
Python、Javascript中的闭包比较
2015/02/04 Python
说一说Python logging
2016/04/15 Python
python取代netcat过程分析
2018/02/10 Python
详解python 注释、变量、类型
2018/08/10 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
安装PyInstaller失败问题解决
2019/12/14 Python
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
八皇后问题,输出了所有情况,不过有些结果只是旋转了90度
2016/08/15 面试题
百度软件工程师职位
2013/02/14 面试题
Java程序开发中如何应用线程
2016/03/03 面试题
社区工作者先进事迹
2014/01/18 职场文书
《故都的秋》教学反思
2014/04/15 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
护理见习报告范文
2014/11/03 职场文书
2014年加油站工作总结
2014/12/04 职场文书
2016年教师党员创先争优承诺书
2016/03/24 职场文书
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫