Python

파이썬으로 윈도우 이벤트로그 목록구하기

bitcoder 2022. 11. 15. 15:04
728x90

 

파이썬 프로그래밍으로 윈도우 이벤트로그 목록을 구하는 방법을 소개합니다.

 

기본적인 설명은 다음과 같습니다.

 

- 윈도우 이벤트 로그는 %SystemRoot%\System32\winevt\logs에 저장됨

- 윈도우에서 파이썬으로 파일목록을 구하려면 glob라이브러리를 사용할 수 있음

 

이제 윈도우 이벤트 로그가 저장된 폴더에서 이벤트로그 목록을 구하는 파이썬 코드를 소개합니다.

 

소스코드는 다음과 같습니다.

 

출력을 더 편하게 보기 위해 json.dumps에 indent를 주어 작성했습니다.

import os
import glob
import json


def get_evtpath_list():
    evtpath_list = []
    evtlog_path = os.getenv('SystemRoot', "C:\\Windows") + \
        "\\System32\\winevt\\logs\\*"
    for f in glob.glob(evtlog_path, recursive=True):
        evtpath_list.append(f)
    return evtpath_list


if "__main__" == __name__:
    evtpath_list = get_evtpath_list()
    print(json.dumps(evtpath_list, indent=4))

 

실행화면은 다음과 같습니다.

 

다음으로 이벤트로그 경로로부터 이벤트 채널이름을 추출하여 출력하는 소스코드입니다.

get_evtpath_list함수는 위에서 소개하여 내용을 생략합니다.

import os
import glob
import json
import ntpath
import pathlib


def get_evtpath_list(): #생략...

def abspath_to_channel_name(abspath):
    bname = ntpath.basename(abspath)
    pure_file_stem = pathlib.PurePath(bname).stem
    pure_file_ext = pathlib.PurePath(bname).suffix

    file_path = ntpath.dirname(abspath)
    return (pure_file_stem)


if "__main__" == __name__:
    evtpath_list = get_evtpath_list()
    for evtpath in evtpath_list:
        print(abspath_to_channel_name(evtpath))

 

다음은 실행화면입니다.

 

이상과 같이 파이썬 프로그래밍으로 윈도우 이벤트로그 목록을 구하는 방법을 소개했습니다.

 

728x90