123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # -*- coding: utf-8 -*-
- # @Author: wangkun
- # @Time: 2023/7/17
- import glob
- import datetime
- import os.path
- import re
- import time
- class MonitorLogs:
- @classmethod
- def monitor_logs(cls, log_type, crawler):
- # 获取日志文件的路径
- log_files = glob.glob(f"./{crawler}/logs/*-{datetime.datetime.now().date().strftime('%Y-%m-%d')}.log")
- if len(log_files) == 0:
- print("未发现最新日志")
- return
- for log_file in log_files:
- # 检查文件名是否包含"author"且后面带有数字
- if re.search(r"author\d", log_file):
- continue
- # 读取最新日志文件的内容
- with open(log_file, "r") as file:
- logs = file.readlines()
- # 过滤空行日志
- logs = [log.strip() for log in logs if log.strip()]
- # 获取最新一条日志的时间和内容
- latest_log = logs[-1]
- log_time_str = datetime.datetime.strptime(latest_log[:19], "%Y-%m-%d %H:%M:%S")
- log_time_stamp = int(log_time_str.timestamp())
- print("日志文件:", log_file)
- print("最新日志时间:", log_time_str)
- print("最新日志时间戳:", log_time_stamp)
- print("最新日志内容:\n", latest_log[24:])
- if int(time.time()) - log_time_stamp > 60*5:
- print(f"{int(time.time())} - {log_time_stamp} = {int(time.time())-log_time_stamp} > {60 * 5}")
- if __name__ == "__main__":
- MonitorLogs.monitor_logs("author", "gongzhonghao")
- pass
|