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 代码优化详解
Oct 27 Python
Python中的对象,方法,类,实例,函数用法分析
Jan 15 Python
解决python 输出是省略号的问题
Apr 19 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
Python2和3字符编码的区别知识点整理
Aug 08 Python
python+pygame实现坦克大战
Sep 10 Python
python创建学生成绩管理系统
Nov 22 Python
linux环境下安装python虚拟环境及注意事项
Jan 07 Python
探秘TensorFlow 和 NumPy 的 Broadcasting 机制
Mar 13 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
python3.9.1环境安装的方法(图文)
Feb 02 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 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
JavaScript 继承详解(四)
2009/07/13 Javascript
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
js中的caller和callee属性介绍和例子
2014/06/07 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
2016/05/03 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
使用Vue自定义数字键盘组件(体验度极好)
2017/12/19 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
django使用LDAP验证的方法示例
2018/12/10 Python
用uWSGI和Nginx部署Flask项目的方法示例
2019/05/05 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
python next()和iter()函数原理解析
2020/02/07 Python
Python爬虫获取豆瓣电影并写入excel
2020/07/31 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
美国女鞋品牌:naturalizer(娜然)
2016/08/01 全球购物
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
体育系毕业生自荐信
2014/06/28 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis