I am trying to update a logfile continuously and I am accessing that logfile in log_parser.py
file like below:
****log_parser.py****
import time
last_pos=0
while True:
f=open(r".\log_file.log","r")
f.seek(last_pos)
for i in f.readlines():
print i
print "****************************"
else:
last_pos=f.tell()
time.sleep(1)
continue
Now I am trying to print log lines continuously. If there are no log lines it will record last position value and I seek()
that position each iteration, but that gives me the wrong output.
****log_file.log****
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
.
.
.
.
.
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
I am appending those lines dynamically into that logfile.
****Excpected output*************
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
***********************
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
*************************
cccccccccccccccccccccccccccccc
**************************
and upto zzzzzz
but now I am getting
***I am Getting************
aaaaaaaaaaaaaaaaaaaaaaaaaaaa
**********************
bbbbbbbbbbbbbbbbbbbbbbbbbbbbb
*********************
cccccccccccccccccccccccccccccccccc
************************
dddddddddddddddd
*************************
dddddddddddd
*******************
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
***********************************
upto zzzzz
but in between f.tell()
method returns the pointer and f.seek()
method seeks the position of middle of the line.
Can anyone please help solve this?