2023-11-05 01:37:35 +00:00
|
|
|
#!/usr/bin/python3
|
|
|
|
from datetime import datetime as dt
|
|
|
|
from sys import stdout, stderr
|
2023-11-09 03:20:50 +00:00
|
|
|
from typing import Union
|
2023-11-05 01:37:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
def log(
|
2023-11-09 03:20:50 +00:00
|
|
|
message: str, origin: str = "Unknown", level: str = "LOG", time: Union[dt, str] = "now"
|
2023-11-05 01:37:35 +00:00
|
|
|
) -> None:
|
2023-11-08 03:58:11 +00:00
|
|
|
if level in ["EXIT", "CRASH"]:
|
2023-11-05 01:37:35 +00:00
|
|
|
stream = stderr
|
|
|
|
else:
|
|
|
|
stream = stdout
|
2023-11-05 03:55:26 +00:00
|
|
|
if time == "now":
|
2023-11-05 22:20:13 +00:00
|
|
|
time = dt.now()
|
2023-11-05 01:37:35 +00:00
|
|
|
if not "\n" in message:
|
2023-11-08 03:58:11 +00:00
|
|
|
print(f"[{level}][{origin}][{time}] {message}", file=stream)
|
2023-11-05 01:37:35 +00:00
|
|
|
else:
|
|
|
|
for line in message.split("\n"):
|
2023-11-08 03:58:11 +00:00
|
|
|
print(f"[{level}][{origin}][{time}] {line}", file=stream)
|