Zamiel icon

log_watcher.py

Zamiel | PRO | 08/31/18 09:31:45 PM UTC | 0 ⭐ | 272 👁️ | Never ⏰ | []
Python |

1.93 KB

|

None

|

0 👍

/

0 👎

#! C:\Python27\python.exe
 
# Imports
import os
import re
import sys
 
# Configuration
#show_everything = True
show_everything = False
#logFilePath = 'C:/Users/' + os.getenv('username') + '/Documents/My Games/Binding of Isaac Rebirth/log.txt'
#logFilePath = 'C:/Users/' + os.getenv('username') + '/Documents/My Games/Binding of Isaac Afterbirth/log.txt'
logFilePath = 'C:/Users/' + os.getenv('username') + '/Documents/My Games/Binding of Isaac Afterbirth+/log.txt'
 
fileArrayPosition = 0
 
def main():
    while True:
        parseLog()
 
def parseLog():
    global fileArrayPosition
 
    # Read the log into a variable
    try:
        with open(logFilePath, 'r') as f:
            fileContents = f.read()
    except Exception:
        print('I could not open the log file at "' + logFilePath + '".')
        sys.exit(1)
 
    # Convert it to an array
    fileArray = fileContents.splitlines()
 
    # Return to the start if we go past the end of the file (which occurs when the log file is truncated)
    if fileArrayPosition > len(fileArray):
        fileArrayPosition = 0
 
    # Process the log's new output
    for line in fileArray[fileArrayPosition:]:
        # Show everything for debugging purposes
        if show_everything:
            print(line)
 
        # Show errors and Lua debugging messages
        if show_everything == False:
            if line.startswith('[INFO] - ERR'):
                print(line)
            elif line.startswith('[INFO] - Lua Debug: '):
                print(line)
            elif "Error" in line or "error" in line or "ERROR" in line:
                print(line)
            elif "Warn" in line or "warn" in line or "WARN" in line:
                print(line)
            elif "Fail" in line:
                print(line)
 
    # Set that we have read the log up to this point
    fileArrayPosition = len(fileArray)
 
# The main program
if __name__ == '__main__':
    main()

Comments