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随机生成指定长度密码的方法
Apr 04 Python
Python抓取手机号归属地信息示例代码
Nov 28 Python
Python实现从log日志中提取ip的方法【正则提取】
Mar 31 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
深入浅析Python传值与传址
Jul 10 Python
Flask之请求钩子的实现
Dec 23 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
Jun 18 Python
PYQT5实现控制台显示功能的方法
Jun 25 Python
Python拆分大型CSV文件代码实例
Oct 07 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
python中xlutils库用法浅析
Dec 29 Python
python实现PolynomialFeatures多项式的方法
Jan 06 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
用PHP控制用户的浏览器--ob*函数的使用说明
2007/03/16 PHP
php cookie使用方法学习笔记分享
2013/11/07 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
js 图片等比例缩放代码
2010/05/13 Javascript
基于Jquery制作的幻灯片图集效果打包下载
2011/02/12 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
jQuery实现飞机大战小游戏
2020/07/05 jQuery
详解JavaScript的this指向和绑定
2020/09/08 Javascript
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python使用matplotlib绘制雷达图
2019/10/18 Python
html5自带表单验证体验优化及提示气泡修改功能
2017/09/12 HTML / CSS
经济学人订阅:The Economist
2018/07/19 全球购物
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
软件测试面试题
2014/01/05 面试题
家长会标语
2014/06/24 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
2015年技术员工作总结
2015/04/10 职场文书
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js
MYSQL中文乱码问题的解决方案
2022/06/14 MySQL