adding fake-logs script
This commit is contained in:
parent
7af8889965
commit
24b9941fb7
104
fake-logs
Executable file
104
fake-logs
Executable file
@ -0,0 +1,104 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
Randomly writes from a set of messages simulating logging.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import logging
|
||||
import random
|
||||
import time
|
||||
|
||||
|
||||
|
||||
def parse_args():
|
||||
argp = argparse.ArgumentParser()
|
||||
argp.add_argument('file', help="Full path for log file")
|
||||
argp.add_argument('-d', '--delay', type=int, default=5, help="Number to delay log entries (1/n)")
|
||||
|
||||
return argp.parse_args()
|
||||
|
||||
|
||||
def random_message(log_level):
|
||||
debug_messages = [
|
||||
"Values = [10, 20, 33]",
|
||||
"Cake ratio = 3.14",
|
||||
"Setting flat mode",
|
||||
"Back to normal mode",
|
||||
"Voltage: 1.21 Gigawatts",
|
||||
"Speed: 88 mph",
|
||||
"Temperature: 32.4C"
|
||||
]
|
||||
|
||||
info_messages = [
|
||||
"My cat is blue",
|
||||
"All your base are belong to us",
|
||||
"I like turtles",
|
||||
"Chocolate rain...",
|
||||
"I hate prunes",
|
||||
"The cake is a lie",
|
||||
"I'm giving her all she's got!"
|
||||
]
|
||||
|
||||
warning_messages = [
|
||||
"Numbers reaching critical levels",
|
||||
"Magnetic constrictors around the anti-matter containment fields are failing",
|
||||
"Approaching thermal thresholds",
|
||||
"Searching is taking too long",
|
||||
"There are monkeyboys in the facility",
|
||||
"Structural integrity approaching tolerance",
|
||||
"Process taking too long"
|
||||
]
|
||||
|
||||
error_messages = [
|
||||
"Unable to process request",
|
||||
"Connection lost with host",
|
||||
"Buffer overflow",
|
||||
"Warp engines are offline",
|
||||
"No more coffee",
|
||||
"Server not responding",
|
||||
"Cannot divide by zero"
|
||||
]
|
||||
|
||||
message_level = [
|
||||
debug_messages,
|
||||
info_messages,
|
||||
warning_messages,
|
||||
error_messages
|
||||
]
|
||||
|
||||
which_message = random.randint(0, 6)
|
||||
|
||||
return message_level[log_level - 1][which_message]
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
|
||||
_LEVEL = logging.NOTSET
|
||||
_FORMAT = logging.Formatter("%(asctime)-15s [%(levelname)-8s] : %(lineno)d : %(name)s.%(funcName)s : %(message)s")
|
||||
|
||||
_file_handler = logging.FileHandler(args.file, mode='a')
|
||||
_file_handler.setFormatter(_FORMAT)
|
||||
_file_handler.setLevel(_LEVEL)
|
||||
|
||||
log = logging.Logger('fake-logs')
|
||||
log.addHandler(_file_handler)
|
||||
|
||||
try:
|
||||
while True:
|
||||
sleep_time = random.random() * float(f"0.{args.delay}")
|
||||
logging_level = random.randint(0, 40) % 4
|
||||
|
||||
log.log(logging_level * 10, random_message(logging_level))
|
||||
|
||||
time.sleep(sleep_time)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
time.sleep(0.25)
|
||||
log.error(random_message(4))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user