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之父谈Python的未来形式
Jul 01 Python
python类:class创建、数据方法属性及访问控制详解
Jul 25 Python
Python中.py文件打包成exe可执行文件详解
Mar 22 Python
Django自定义分页效果
Jun 27 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
详解python校验SQL脚本命名规则
Mar 22 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
Apr 05 Python
如何使用Python抓取网页tag操作
Feb 14 Python
pycharm实现在虚拟环境中引入别人的项目
Mar 09 Python
python代码区分大小写吗
Jun 17 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
Jun 29 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函数常用用法小结
2010/02/08 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
2016/03/18 PHP
Smarty保留变量用法分析
2016/05/23 PHP
谈谈PHP连接Access数据库的注意事项
2016/08/12 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
Windows系统下安装Node.js的步骤图文详解
2016/11/15 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
基于angular2 的 http服务封装的实例代码
2017/06/29 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
深入解析ES6中的promise
2018/11/08 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
javascript执行上下文、变量对象实例分析
2020/04/25 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
学习python (2)
2006/10/31 Python
Python subprocess模块学习总结
2014/03/13 Python
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
Python解析nginx日志文件
2015/05/11 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
Python列表切片操作实例总结
2019/02/19 Python
python实现网页录音效果
2020/10/26 Python
专科毕业生学习生活的自我评价
2013/10/26 职场文书
合伙经营协议书范本
2014/09/13 职场文书
2014年保险业务员工作总结
2014/12/23 职场文书
2015社区健康教育工作总结
2015/05/20 职场文书
芙蓉镇观后感
2015/06/10 职场文书
门球健将观后感
2015/06/16 职场文书