feat: 리눅스 환경 파일 동기화, Dockerfile 및 docker-compose 추가, 캐시 무시 설정
This commit is contained in:
48
analyze_logs_pattern.py
Normal file
48
analyze_logs_pattern.py
Normal file
@@ -0,0 +1,48 @@
|
||||
import pymysql
|
||||
import re
|
||||
from collections import Counter
|
||||
|
||||
def get_db_connection():
|
||||
return pymysql.connect(
|
||||
host='localhost',
|
||||
user='root',
|
||||
password='45278434',
|
||||
database='pm_proto_test',
|
||||
charset='utf8mb4',
|
||||
cursorclass=pymysql.cursors.DictCursor
|
||||
)
|
||||
|
||||
def analyze_logs():
|
||||
conn = get_db_connection()
|
||||
try:
|
||||
with conn.cursor() as cursor:
|
||||
cursor.execute("SELECT DISTINCT recent_log FROM projects_history WHERE recent_log IS NOT NULL AND recent_log != ''")
|
||||
rows = cursor.fetchall()
|
||||
|
||||
logs = [r['recent_log'] for r in rows]
|
||||
|
||||
output = []
|
||||
output.append("[Raw Log Samples]")
|
||||
for log in logs[:20]:
|
||||
output.append(f"- {log}")
|
||||
|
||||
patterns = []
|
||||
for log in logs:
|
||||
p = re.sub(r'\d{2,4}\.\d{2}\.\d{2}', '[DATE]', log)
|
||||
p = re.sub(r'\d+', '[NUM]', p)
|
||||
patterns.append(p)
|
||||
|
||||
output.append("\n[Log Patterns Frequency]")
|
||||
pattern_counts = Counter(patterns).most_common(20)
|
||||
for p, count in pattern_counts:
|
||||
output.append(f"({count}) {p}")
|
||||
|
||||
with open("log_analysis_result.txt", "w", encoding="utf-8") as f:
|
||||
f.write("\n".join(output))
|
||||
print("Analysis complete. Result saved to log_analysis_result.txt")
|
||||
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
analyze_logs()
|
||||
Reference in New Issue
Block a user