본문 바로가기

강의/Python 기초

Chapter 17. 로그 분석 프로그램

반응형

로그 파일 읽기

이번 시간에는 파이썬으로 로그 파일을 읽고 분석하는 프로그램을 만들어 보겠습니다.

로그 파일은 프로그램이나 컴퓨터가 남기는 기록장입니다.

예를 들어 이런 내용이 로그입니다.

INFO 프로그램 시작
ERROR 파일을 찾을 수 없습니다
WARNING 메모리가 부족합니다
INFO 프로그램 종료

여기서 우리는 파이썬으로 로그 파일을 읽고
ERROR, WARNING, INFO 같은 내용을 찾아볼 수 있습니다.


로그 분석 프로그램 전체 코드

# 로그 분석 프로그램

def read_log_file(filename):
    try:
        with open(filename, "r", encoding="utf-8") as file:
            logs = file.readlines()
        return logs

    except FileNotFoundError:
        print("로그 파일을 찾을 수 없습니다.")
        return []


def analyze_logs(logs):
    info_count = 0
    warning_count = 0
    error_count = 0

    print("\n===== 전체 로그 내용 =====")

    for log in logs:
        print(log.strip())

        if "INFO" in log:
            info_count += 1
        elif "WARNING" in log:
            warning_count += 1
        elif "ERROR" in log:
            error_count += 1

    print("\n===== 로그 분석 결과 =====")
    print("INFO 개수 :", info_count)
    print("WARNING 개수 :", warning_count)
    print("ERROR 개수 :", error_count)


# 프로그램 실행
filename = "log.txt"

logs = read_log_file(filename)
analyze_logs(logs)

예제 로그 파일 만들기

먼저 파이썬 파일과 같은 폴더에
log.txt 파일을 만들어 주세요.

그리고 아래 내용을 넣어 주세요.

INFO 프로그램 시작
INFO 사용자 로그인
WARNING 저장 공간이 부족합니다
ERROR 파일을 찾을 수 없습니다
INFO 데이터 저장 완료
ERROR 서버 연결 실패
INFO 프로그램 종료

실행 결과 예시

===== 전체 로그 내용 =====
INFO 프로그램 시작
INFO 사용자 로그인
WARNING 저장 공간이 부족합니다
ERROR 파일을 찾을 수 없습니다
INFO 데이터 저장 완료
ERROR 서버 연결 실패
INFO 프로그램 종료

===== 로그 분석 결과 =====
INFO 개수 : 4
WARNING 개수 : 1
ERROR 개수 : 2

코드 설명

1. 로그 파일 읽기

with open(filename, "r", encoding="utf-8") as file:
    logs = file.readlines()

open()은 파일을 여는 명령어입니다.

"r"은 읽기 모드입니다.

readlines()는 파일 안에 있는 글을 한 줄씩 읽어서 리스트에 저장합니다.


2. 파일이 없을 때 처리하기

except FileNotFoundError:
    print("로그 파일을 찾을 수 없습니다.")

만약 log.txt 파일이 없으면 오류가 날 수 있습니다.

그래서 try, except를 사용해서
파일이 없을 때 친절하게 메시지를 보여줍니다.


3. 로그 종류 세기

if "INFO" in log:
    info_count += 1
elif "WARNING" in log:
    warning_count += 1
elif "ERROR" in log:
    error_count += 1

로그 한 줄 안에 INFO가 있으면 INFO 개수를 1개 올립니다.

WARNING이 있으면 WARNING 개수를 올립니다.

ERROR가 있으면 ERROR 개수를 올립니다.


쉽게 이해하기

로그 파일은 컴퓨터의 일기장입니다.

파이썬은 그 일기장을 읽고,

“정상 기록은 몇 개일까?”
“경고는 몇 개일까?”
“오류는 몇 개일까?”

이렇게 자동으로 세어 줍니다.

사람이 하나씩 읽지 않아도
파이썬이 빠르게 확인해 주는 것이 로그 분석 프로그램입니다.


이번 시간에 배운 내용

  • 텍스트 파일 읽기
  • open() 함수 사용하기
  • readlines()로 여러 줄 읽기
  • try except로 오류 처리하기
  • 특정 단어가 몇 번 나오는지 세기
  • 로그 파일 분석하기

마무리

이번에는 파이썬으로 로그 파일을 읽고
INFO, WARNING, ERROR 개수를 세어 보았습니다.

로그 분석은 실제 개발에서도 많이 사용됩니다.

프로그램에 문제가 생겼을 때
로그를 확인하면 어디에서 문제가 생겼는지 찾을 수 있습니다.

처음에는 어렵게 느껴질 수 있지만
로그는 컴퓨터가 남긴 기록이라고 생각하면 쉽습니다.

파이썬으로 로그를 읽고 분석하는 방법을 익히면
나중에 더 큰 프로그램을 만들 때도 큰 도움이 됩니다.


로그 분석 프로그램

반응형