loggy/testlogs.py

41 lines
1.3 KiB
Python

import argparse
import logging
import time
import random
import report
logger = logging.getLogger("testlogs")
# Definiere verschiedene Logger für unterschiedliche Module
logger_main = logger.getChild("main_app")
logger_db = logger.getChild("database.connector")
logger_api = logger.getChild("api.v1")
log_levels = [logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL]
loggers = [logger_main, logger_db, logger_api]
if __name__ == "__main__":
#
# Parse Arguments
#
parser = argparse.ArgumentParser(description='This is an application generating test logs.')
parser.add_argument('-f', dest='hostname', default='localhost', help='Hostname of the log server')
parser.add_argument('-p', dest='port', default=19996, type=int, help='Port of the log server')
args = parser.parse_args()
report.add_handler_stdout(logger, logging.DEBUG)
report.add_handler_socket(logger, host=args.hostname, port=args.port)
print("Sende Logs an den Server. Drücken Sie STRG+C zum Beenden.")
try:
while True:
level = random.choice(log_levels)
logger = random.choice(loggers)
logger.log(level, f"Dies ist eine Testnachricht.")
time.sleep(random.uniform(0.25, 0.75))
except KeyboardInterrupt:
print("Senden der Logs beendet.")