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时MySQLdb报错的问题描述及解决方法
Mar 20 Python
Python迭代器定义与简单用法分析
Apr 30 Python
Python动态导入模块的方法实例分析
Jun 28 Python
Python实现多属性排序的方法
Dec 05 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
Python通过字典映射函数实现switch
Nov 06 Python
python - timeit 时间模块
Apr 06 Python
解决jupyter notebook启动后没有token的坑
Apr 24 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
Jun 01 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
3.从实例开始
2006/10/09 PHP
DedeCms模板安装/制作概述
2007/03/11 PHP
PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】
2017/04/19 PHP
Laravel学习教程之本地化模块
2017/08/18 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
Javascript浅谈之this
2013/12/17 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
JS hashMap实例详解
2016/05/26 Javascript
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
2016/08/27 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
微信小程序按钮去除边框线分享页面功能
2018/08/27 Javascript
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
JS求解两数之和算法详解
2020/04/28 Javascript
使用python实现省市三级菜单效果
2016/01/20 Python
对python 匹配字符串开头和结尾的方法详解
2018/10/27 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
python将数据插入数据库的代码分享
2020/08/16 Python
如何用Python徒手写线性回归
2021/01/25 Python
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
优纳科技软件测试面试题
2012/05/15 面试题
水利公司纪检监察自我鉴定
2014/02/25 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
大学班干部竞选稿
2015/11/20 职场文书
5种 JavaScript 方式实现数组扁平化
2021/10/05 Javascript
Nginx内网单机反向代理的实现
2021/11/07 Servers