63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
"""
|
|
Attack Logger Wrapper
|
|
========================
|
|
"""
|
|
|
|
|
|
import logging
|
|
|
|
|
|
class Logger:
|
|
"""An abstract class for different methods of logging attack results."""
|
|
|
|
def __init__(self, save_path = r'logger.log'):
|
|
# 设置日志的基本配置。这会配置root logger。
|
|
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
# 配置日志记录器
|
|
logging.basicConfig(level=logging.WARNING, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
|
|
|
|
self.logger = logging.getLogger()
|
|
|
|
self.filter = KeywordFilter('openai') # 替换为你想拒绝的关键词
|
|
self.logger.addFilter(self.filter)
|
|
|
|
self.console_handler = logging.StreamHandler()
|
|
self.logger.addHandler(self.console_handler)
|
|
|
|
self.file_handler = logging.FileHandler(save_path)
|
|
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
|
|
self.file_handler.setFormatter(formatter)
|
|
self.logger.addHandler(self.file_handler)
|
|
|
|
def log_attack_result(self, result, examples_completed=None):
|
|
pass
|
|
|
|
def log_summary_rows(self, rows, title, window_id):
|
|
pass
|
|
|
|
def log_hist(self, arr, numbins, title, window_id):
|
|
pass
|
|
|
|
def log_sep(self):
|
|
pass
|
|
|
|
def flush(self):
|
|
pass
|
|
|
|
def close(self):
|
|
pass
|
|
|
|
|
|
|
|
class KeywordFilter(logging.Filter):
|
|
def __init__(self, keyword):
|
|
self.keyword = keyword
|
|
|
|
def filter(self, record):
|
|
# 检查日志记录的消息中是否包含关键词
|
|
return self.keyword not in record.getMessage()
|
|
|
|
# 创建一个日志器
|
|
|
|
# 创建并添加过滤器
|