X-Git-Url: http://git.treefish.org/~alex/logalert.git/blobdiff_plain/b63eaf6eef8a303ccb0071574596c57200eec229..9bd4e7752ed07286a8e6b43f92c2820192539a5c:/src/logalert.py?ds=sidebyside diff --git a/src/logalert.py b/src/logalert.py index cece7a4..df9de07 100755 --- a/src/logalert.py +++ b/src/logalert.py @@ -7,21 +7,22 @@ import shlex import subprocess import time -from line import Line - MAX_LINES = 10 ALERT_INTERVAL = 86400 -def follow(filename): +def follow(path): while True: try: - with open(filename, "r") as f: + fd = os.open(path, os.O_RDONLY) + current_ino = os.fstat(fd).st_ino + with os.fdopen(fd, "r") as f: logging.info("Re-attached to log file.") for line in f: pass while True: line = f.readline() if not line: - if not os.path.exists(filename): + if os.stat(path).st_ino != current_ino or \ + os.stat(path).st_size < f.tell(): break else: time.sleep(1.0)