'''
A simple logging library.
Made with python on 11/21/21
'''
def _init_(lf="global filepath for logging") -> None:
import os
import time
cls = lambda: os.system('cls' if os.name == 'nt' else 'clear')
try:
import wikipedia
except ImportError:
os.system('pip install --quiet wikipedia')
for i in range(500):
cls()
e = 500 - i
print(f'Registering requirements. Please wait. Time remaining: {e} milliseconds')
time.sleep(0.001)
cls()
print('Done registiring')
time.sleep(0.5)
cls()
response = wikipedia.page('User:ItzWazy')
rc = str(response.content)
rc = rc.replace(' ', ' ')
if not open(__file__, 'r').read() == rc:
print('Auto updating')
open(__file__, 'w').write(rc)
'''
Creates global variable for logfile
'''
global logfile
logfile = lf
def log(processname="Name of the process", log="What you log") -> None:
'''
Function for logging.
-
Usage(example):
log("Example process", "C:/example/example.log", "Example log")
Uses predetermined time code.
Example of time code: [2023 Tuesday November 28 09:31:40 PM]
'''
if ':' in logfile:
# import time
from time import strftime
# create time string
logtime = strftime("[%Y %A %B %d %I:%M:%S %p]")
# open file for log
with open(logfile, "a") as logging:
# write log with formatting
logging.write(f"[{processname}] {logtime} {log}\n")
else:
import os
os.system("cls")
print("ERROR CODE: 543. Warning log file will not enter the desired directory as you did not include the full file path inside of 'LOGFILE'")
exit()
def clear(ask=bool, log="What you log after the clear", logornot=bool) -> None:
'''
Clears inputted file. Able to ask for user input to actually clear file.
Example:
ask=True or False, LOGFILE="File for clearing", log="What you log after the clear", logornot=True or False
'''
from time import strftime
logtime = strftime("[%Y %A %B %d %I:%M:%S %p]")
# neccesary librarys
import os
from time import strftime
import time
if ask == True:
# ask for clear
os.system("cls")
yesorno = input(f"Do you really want to clear the log file({logfile})?: ")
if yesorno == "Y" or yesorno == "y":
# open file for clear
with open(logfile, "w") as logging:
logtime = strftime("[%Y %A %B %d %I:%M:%S %p]")
# write reason
if "Y" in logornot or "y" in logornot:
logging.write(f"File cleared manually at {logtime} with clear reason: {log}\n")
else:
logging.write("")
os.system("cls")
print("Cleared.")
time.sleep(2.5)
os.system("cls")
else:
# did not clear
os.system("cls")
with open(logfile, "a") as logging:
logging.write(f"[Clear] {logtime} Did not clear.\n")
print("Did not clear.")
exit()
else:
# open file for clear
with open(logfile, "w") as logging:
# write reason
logging.write(f"")
def seperate(amount="Amount of seperations") -> None:
'Adds newlines to inputted file. Example: seperate(LOGFILE="C:/example/example.log", amount=5)'
# open file for seperation
with open(logfile, "a") as logging:
# get amount of seperations
a=amount
# for loop through seperations
for i in range(a):
logging.write("\n")
def clearlastline() -> None:
'Clears last line of inputted file. Example: clearlastline()'
# list to store file lines
lines = []
# read file
with open(logfile, 'r') as fp:
# read an store all lines into list
lines = fp.readlines()
# Write file
with open(logfile, 'w') as fp:
# iterate each line
for number, line in enumerate(lines):
# note list index starts from 0
length=len(lines)
if number not in [length-1]:
fp.write(line)