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 相关文章推荐
Django静态资源URL STATIC_ROOT的配置方法
Nov 08 Python
Python语言描述随机梯度下降法
Jan 04 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
Jun 27 Python
django-filter和普通查询的例子
Aug 12 Python
python将三维数组展开成二维数组的实现
Nov 30 Python
使用python动态生成波形曲线的实现
Dec 04 Python
pytorch加载自定义网络权重的实现
Jan 07 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
基于keras中的回调函数用法说明
Jun 17 Python
浅析python实现动态规划背包问题
Dec 31 Python
python源码剖析之PyObject详解
May 18 Python
Python实现简繁体转换
Jun 07 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.MVC的模板标签系统(二)
2006/09/05 PHP
第一节--面向对象编程
2006/11/16 PHP
php日历制作代码分享
2014/01/20 PHP
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
jquery制作漂亮的弹出层提示消息特效
2014/12/23 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
vue子父组件通信的实现代码
2017/07/09 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
vue发送ajax请求详解
2018/10/09 Javascript
基于Vue2实现简易的省市区县三级联动组件效果
2018/11/05 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
简单介绍Python中的try和finally和with方法
2015/05/05 Python
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
Python操作csv文件实例详解
2017/07/31 Python
Python类的继承和多态代码详解
2017/12/27 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
Keras实现DenseNet结构操作
2020/07/06 Python
python将数据插入数据库的代码分享
2020/08/16 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
电子信息毕业生自荐信
2013/11/16 职场文书
门卫岗位安全职责
2013/12/13 职场文书
公司中秋节活动方案
2014/02/12 职场文书
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers