I\'m writing a program that will parse an Apache log file periodically to log it\'s visitors, bandwidth usage, etc..
The problem is, I don\'t want to open the log an
Here is an efficient and safe snippet to do that saving the offset read in a parallell file. Basically logtail in python.
with open(filename) as log_fd:
offset_filename = os.path.join(OFFSET_ROOT_DIR,filename)
if not os.path.exists(offset_filename):
os.makedirs(os.path.dirname(offset_filename))
with open(offset_filename, 'w') as offset_fd:
offset_fd.write(str(0))
with open(offset_filename, 'r+') as offset_fd:
log_fd.seek(int(offset_fd.readline()) or 0)
new_logrows_handler(log_fd.readlines())
offset_fd.seek(0)
offset_fd.write(str(log_fd.tell()))