X-Git-Url: http://git.treefish.org/~alex/logalert.git/blobdiff_plain/6e4649c5bae35dc883f50642d81f0b57c6df565b..9bd4e7752ed07286a8e6b43f92c2820192539a5c:/src/logalert.py?ds=inline diff --git a/src/logalert.py b/src/logalert.py index 509b246..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) @@ -113,8 +114,3 @@ for line in follow(args.logfile): if error_state: logging.info("Leaving error state.") error_state = False - feed_handler( create_msg("Log Un-Alert", - "🌞", - args.logfile, - "Log is back to normal.", - lines) )