首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Pyhon制作脚本提取日志数据

Pyhon制作脚本提取日志数据

原创
作者头像
深雾
修改于 2020-08-17 02:05:00
修改于 2020-08-17 02:05:00
64300
代码可运行
举报
文章被收录于专栏:工具类工具类
运行总次数:0
代码可运行

Python

可能是java和lua的基础,这门语言学起来莫名的快,安装环境看了半天基础语法就开始写脚本了。

需求

提取log日志文件夹的日志,error错误日志和add数据信息,定时更新当前日期的最新日志信息

脚本

需求还需要定时更新查找当天日志文件,后面补上

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os,sys,io,importlib
sys.setrecursionlimit(10000000)
importlib.reload(sys)
final = []
#work为绝对路径,windos下"d:/ProgramH5Server/H5_server_lj/log"
#linux运行1:chmod a+x log.py  2:sed -i 's/\r$//' log.py 3./log.py
work = "d:/ProgramH5Server/H5_server_lj/log"
for root,dirs,files in os.walk(work): 
    for file in files: 
        final.append(os.path.join(root,file))    
 
def writeline(file):
    filename = file
    log_dir = os.path.join(work, filename)
    with io.open(log_dir, 'r', encoding='utf-8') as f: 
        print(file)
        lines = f.readlines()
        error_line = []
        operate_line = []
        for line in lines:
            if 'Error' in line or 'ERROR' in line or 'Exception' in line or 'EXCEPTION' in line or './' in line :
                error_line.append(line)
            elif '---add' in line :
                operate_line.append(line)
 
    errorlogname = 'error.log'
    operatelogname = 'operate.log'
    resultwork = os.path.dirname(__file__)
    log_a = os.path.join(resultwork, errorlogname)
    log_b = os.path.join(resultwork, operatelogname)
    with io.open(log_a, 'a',encoding='utf-8') as result:
        result.write('日志文件错误:'+ file)
        for i in list(set(error_line)):
            result.write(i)
    with open(log_b, 'a', encoding='utf-8') as result:
        result.write('日志文件操作:'+ file)
        for i in list(set(operate_line)):
            result.write(i)
 
for file in final:
    writeline(file)
 
#定时

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
MySQL InnoDB 存储引擎原理浅析
本文主要基于MySQL 5.6以后版本编写,多数知识来着书籍《MySQL技术内幕++InnoDB存储引擎》,今年的多数学习知识只写在笔记里,较为零散,最近稍有时间整理出来,分享进步。
程序员小强
2021/05/27
1.6K0
第7章_InnoDB数据存储结构
🧑个人简介:大家好,我是 shark-Gao,一个想要与大家共同进步的男人😉😉
程序员Leo
2023/08/02
2370
第7章_InnoDB数据存储结构
Oracle、MySQL、PG是如何处理数据库“半页写”的问题的?
数据库“断页”是个很有意思的话题,目前任何数据库应该都绕不过去。我们知道数据库的块大小一般是8k、16k、32k,而操作系统块大小是4k,那么在数据库刷内存中的数据页到磁盘上的时候,就有可能中途遭遇类似操作系统异常断电而导致数据页部分写的情况,进而造成数据块损坏,数据块损坏对于某些数据库是致命的,可能导致数据库无法启动。既然对于断页问题数据库都可能遇到,那么再来看看主流数据库是如何避免发生断页的。
数据库架构之美
2020/11/05
1.7K0
MYSQL 内存机制分析与监控
种数据库都有它自己的内存机制,如果说汽车的三大件,发动机,变速箱,底盘。数据库的内存机制算是数据库核心的核心,一个没有好的内存管理和分配的数据库,一定是不会有好的性能。
AustinDatabases
2019/06/21
2K0
MYSQL 内存机制分析与监控
关于MySQL极限值的初步验证纠错(二)
之前写了一篇自己的简单测试总结:关于MySQL极限值的初步验证纠错 今天在这个基础上继续做一些分析,如果说最权威,最全面的材料,那应该非官方文档莫属了,而要把文档看明白,理解清楚,那就只有大量的练习了,目前我是没发现捷径可走,如果有的话,请告知。 要想较为全面的了解MySQL中的极限值,或者叫做边界值,有很多需要考虑的点,我们有些可以做测试,有些就需要参考文档了。比如一个表里的列最多是1017个,注意这里是最多,如果是varchar型,那就达不到1017,但是最大值1017的结论还是成立的
jeanron100
2018/03/22
1K0
针对 MySQL/InnoDB 刷盘调优
这篇文章是讲述 InnoDB 刷盘策略系列文章的第三篇。本文主要讲述 性能调优。另外2篇文章参考
用户1278550
2022/07/30
2.2K0
深入浅出 InnoDB Flushing
作为MySQL InnoDB IO 调优系列的第二篇, 第一篇文章 参见Give Love to Your SSDs – Reduce innodb_io_capacity_max !
用户1278550
2022/07/30
1K0
深入浅出 InnoDB Flushing
InnoDB存储引擎之内存管理
在InnoDB存储引擎中,数据库中的缓冲池是通过LRU(Latest Recent Used,最近最少使用)算法来进行管理的,即最频繁使用的页在LRU列表的最前段,而最少使用的页在LRU列表的尾端,当缓冲池不能存放新读取到的页时,首先释放LRU列表尾端的页。
AsiaYe
2019/11/06
1K0
InnoDB存储引擎之内存管理
Mysql进阶索引篇02——InnoDB存储引擎的数据存储结构
前面我们已经剖析了mysql中InnoDB与MyISAM索引的数据结构,了解了B+树的设计思想、原理,并且介绍了B+树与Hash结构、平衡二叉树、AVL树、B树等的区别和实际应用场景。
半旧518
2022/10/26
1.4K0
Mysql进阶索引篇02——InnoDB存储引擎的数据存储结构
数据库|基于内存的持久性
内存数据库系统在磁盘上维护备份,以提供持久性并防止易失性。有些数据库只在内存中存储数据,没有任何持久性保证。
heidsoft
2021/03/15
6680
数据库|基于内存的持久性
MySQL innodb_page_size
墨墨导读:Page是MySQL Innodb存储的最基本结构,也是Innodb磁盘管理的最小单位,了解page的一些特性,可以更容易理解MySQL。
数据和云
2020/12/08
2.4K0
MySQL innodb_page_size
敲黑板:InnoDB的Double Write,你必须知道
上一次我们讲过Insert Buffer 是用来提高存储引擎性能上的提升,Double Write 就是为了在数据库崩溃恢复时保证数据不丢失的一个重要特性,保证了数据的可靠性。
鲁大猿
2020/11/03
1.3K0
MySQL的内存结构与物理结构
MySQL的数据存储结构主要分两个方面:物理存储结构与内存存储结构,作为数据库,所有的数据最后一定要落到磁盘上,才能完成持久化的存储。内存结构为了实现提升数据库整体性能,主要用于存储临时数据和日志的缓冲。本文主要讲MySQL的物理结构,以及MySQL的内存结构,对于存储引擎也主要以InnoDB为主。
搬砖俱乐部
2019/08/30
8.4K0
关系型数据库 MySQL 之 InnoDB 体系结构
InnoDB 存储引擎是 MySQL 5.5 版本后的默认存储引擎,支持事务 ACID,回滚,系统崩溃恢复能力及多版本并发控制的事务安全,主要用于 OLTP 数据库业务场景;支持自增长列(auto_increment);支持外键约束(foreign key);支持 MVCC 的行级锁;使用 Btree 索引;如果你还没有看到前面一文介绍 MySQL 体系结构,那么推荐戳此查看[MySQL 体系结构详解],介绍完 MySQL 体系结构,下面来一起学习 InnoDB 体系结构。
JiekeXu之路
2019/08/15
1.4K0
MySQL索引原理揭秘:构建高效数据库的核心技术
开始之前推荐一篇实用的文章:《MySQL存储引擎大厂面试经典三连问》,作者:【小白的大数据之旅】。
Lion 莱恩呀
2024/11/27
2290
MySQL索引原理揭秘:构建高效数据库的核心技术
MySQL InnoDB 行记录存储结构
工作中我们基本上都是用MySQL的InnoDB存储引擎,但是大家有去了解过它的底层存储结构吗,想必绝大部分人不知道,或者说不知道怎么查相关知识,刚好来看这篇文章就对了!
小许code
2023/05/15
9530
MySQL InnoDB 行记录存储结构
程序员必备的数据库知识:数据存储结构
数据在数据库中的存储方式就是数据存储结构。传统数据库由上到下,可以分为网络接入层、计算引擎层、存储引擎层、系统文件层,数据存储结构就是在存储引擎层,数据库通过存储引擎实现CRUD操作。不同的存储引擎决定了数据库的性能和功能,所以存储引擎层是数据库的核心。另外,在数据库中数据是以表的形式存储,所以存储引擎也可以称为表类型。
NineData
2023/02/03
1.8K0
程序员必备的数据库知识:数据存储结构
【MySQL系列】- 浅入Buffer Pool
InnoDB 存储引擎是以数据页为单位来管理存储空间的。InnoDB 存储引擎在处理客户端的请求时,当需要访问某个数据页的数据时,就会把完整的数据页的数据全部加载到内存中,也就是说即使我们只需要访问一个数据页的一条记录,那也需要先把整个数据页的数据加载到内存中。将整个数据页加载到内存中后就可以进行读写访问了,在进行完读写访问之后并不着急把该数据页对应的内存空间释放掉,而是将其缓存起来,这样将来有请求再次访问该页面时,就可以省去磁盘 IO 的开销了。这个缓存就称之为Buffer Pool。
索码理
2022/09/20
9280
【MySQL系列】- 浅入Buffer Pool
MySQL InnoDB 存储结构
由上图可以看出,tablespace由segment组成,segment由extend组成,extend由page组成,page由row组成 在MySQL中默认会有一个共享表空间ibdata1,如果设置了innodb_file_per_table=on时,每张表内的数据放在各自的tablespace中,私有tablespace仅包括数据,索引,插入缓冲Bitmap页,而其他的例如回滚信息,插入缓冲索引页,系统事务信息,二次写缓冲等都还是放在共享表空间
yingzi_code
2019/08/31
1.6K0
MySQL提升笔记(4)InnoDB存储结构
这一节本来计划开始索引的学习,但是在InnoDB存储引擎的索引里,存在一些数据存储结构的概念,这一节先了解一下InnodDB的逻辑存储结构,为索引的学习打好基础。
三分恶
2021/04/22
7390
相关推荐
MySQL InnoDB 存储引擎原理浅析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验