summaryrefslogtreecommitdiff
path: root/6_dot_DDoS/logger_DoE.py
diff options
context:
space:
mode:
Diffstat (limited to '6_dot_DDoS/logger_DoE.py')
-rw-r--r--6_dot_DDoS/logger_DoE.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/6_dot_DDoS/logger_DoE.py b/6_dot_DDoS/logger_DoE.py
new file mode 100644
index 0000000..72d1581
--- /dev/null
+++ b/6_dot_DDoS/logger_DoE.py
@@ -0,0 +1,52 @@
+# -*- coding: utf-8 -*-
+import time
+import json
+import threading
+from queue import Queue
+
+class LogLevel:
+ INFO = "INFO"
+ WARNING = "WARNING"
+ ERROR = "ERROR"
+ PAYLOAD = "PAYLOAD"
+
+class LogEntry:
+ def __init__(self, log_level, log_info):
+ self.created_time = time.strftime("%Y-%m-%d %H:%M:%S")
+ self.log_level = log_level
+ self.log_info = log_info
+
+class InfoLogger:
+ def __init__(self, interval=1):
+ self.log_queue = Queue()
+ self.interval = interval
+ self.logging_thread = threading.Thread(target=self.start_logging)
+ self.logging_thread.daemon = True
+ self.logging_thread.start()
+
+ def start_logging(self):
+ while True:
+ entry = self.log_queue.get()
+ if entry is None: # 退出信号
+ break
+ # time.sleep(self.interval) # 延迟输出
+ # 确保输出中文
+ print(json.dumps(entry.__dict__, ensure_ascii=False))
+
+ def log_info(self, level, message):
+ entry = LogEntry(level, message)
+ self.log_queue.put(entry) # 将日志条目发送到队列
+
+ def close(self):
+ self.log_queue.put(None) # 发送退出信号
+ self.logging_thread.join() # 等待线程结束
+
+# 主函数
+# if __name__ == "__main__":
+# logger = InfoLogger(interval=1)
+# logger.log_info(LogLevel.INFO, "程序开始运行")
+# logger.log_info(LogLevel.WARNING, "这是一个警告信息")
+# logger.log_info(LogLevel.ERROR, "发生了一个错误")
+# logger.log_info(LogLevel.PAYLOAD, "处理的有效负载信息")
+# logger.log_info(LogLevel.INFO, "程序结束运行")
+# logger.close() # 关闭日志记录