Tomcat日志分割,监控实时日志
一、日志分割
#!/bin/bash
#定义日志文件目录
dir="usr/local/tomcat/logs/"
#定义日期格式
d=`date +%Y-%m-%d-%H:%M`
#切割日志
cd ${dir} && cp catalina.out $dir/$d.log #日志备份
echo " " > /usr/local/tomcat/logs/catalina.out #原日志清空
PS:若tomcat下放的有项目,可加上项目的路径,进行日志切割
二、监控实时日志
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import time
import re
# 指定日志文件路径
log = "/usr/local/tomcat/logs/catalina.out"
# 打开文件并监控最新行
number = 0
position = 0
with open(log, mode='r') as f:
while True:
line = f.readline().strip()
if line:
number += 1
print("[number %s] %s" % (number, line))
# 记录上次文件读取位置
cur_position = f.tell()
if cur_position == position:
time.sleep(0.1)
continue
else:
position = cur_position
解析:
由于tomcat日志切割出来的是带日期的新日志,而再次产生的日志还在catalina.out里,所以此脚本监控的catalina.out就是最新实时更新的日志