13. [pywin32] NotifyChangeEventLog() 함수

pywin32/win32evtlog|2020. 7. 25. 23:24

NotifyChangeEventLog(handle, handle)

 

이벤트 로그가 쓰여지면 알려주는 함수입니다.

 

인자로는 handle : int, handle : int 가 있습니다.

 

handle 은 OpenEventLog 함수의 리턴값으로 감시할 이벤트 로그의 핸들값입니다.

 

2번째 handle은 win32 event 핸들값으로 이벤트 로그에 로그가 쓰여지면 이 handle이 가리키는 이벤트 핸들에서 알람을 감지할 수 있습니다.

import win32evtlog
import win32event
import win32api
import win32con

pHandle = win32evtlog.OpenEventLog(None, "Application")
# Application 로그 오픈
cHandle = win32event.CreateEvent(None, win32con.TRUE, win32con.FALSE, None)
# 새로운 이벤트를 생성
win32evtlog.NotifyChangeEventLog(pHandle, cHandle)

while True:
    x = win32event.WaitForSingleObject(cHandle, win32event.INFINITE) # 대기
    if x == win32event.WAIT_OBJECT_0:	# 로그가 쓰여지는 걸 감지
        print(f"signaled!")
        break


win32api.CloseHandle(cHandle)
win32evtlog.CloseEventLog(pHandle)
# 핸들 값 반환

위 코드를 실행하면 무한 대기할 것입니다.

 

다른 파이썬 쉘을 키고, ReportEvent 함수를 실행해봅시다. (ReportEvent 코드 참조)

 

이벤트 로그가 쓰여졌으니 이를 감지하고 signaled!를 출력하였습니다.

win32event.WaitForSingleObject 에 대해서는 win32event에서 설명하겠습니다~

 

[pywin32/win32event] - 3. [pywin32] WaitForSingleObject 함수

 

3. [pywin32] WaitForSingleObject 함수

int = WaitForSingleObject(hHandle, milliseconds ) 이벤트 하나를 등록시켜놓고 이벤트가 셋트 되면 이를 알려주는 함수입니다. 인자로는 hHandle : PyHANDLE, milliseconds : int 가 있습니다. hHandle: 대기상..

ssjune.tistory.com

 

반응형

댓글()

12. [pywin32] OpenBackupEventLog() 함수

pywin32/win32evtlog|2020. 7. 25. 13:58

PyEVTLOG_HANDLE = OpenBackupEventLog(serverName, fileName )

 

OpenEventLog 함수와 비슷합니다. 차이가 있다면, 이 함수는 기존에 백업된 이벤트 로그 파일에 대한 핸들값을 리턴합니다.

 

인자는 serverName : PyUnicode, fileName : PyUnicode 가 있습니다.

 

serverName은 이벤트 로그가 있는 원격 서버의 이름입니다. None으로 설정 시 로컬 컴퓨터를 뜻합니다.

 

fileName은 백업된 이벤트 로그 파일의 상대경로 혹은 절대경로입니다.

 

OpenBackupEventLog 함수의 리턴값은 PyEVTLOG_HANDLE 형식이며, 이벤트 로그를 다룰 떄 사용합니다.

그러나 OpenEventLog 함수와는 달리 몇몇 이벤트 로그 함수만 사용할 수 있으며, BackupEventLog 함수로 다시 백업하거나 ReadEventLog 함수로 백업된 로그 내용을 읽어오는 정도만이 가능한 것 같습니다.

import win32evtlog

pHandle = win32evtlog.OpenBackupEventLog(None, "C:\\test\BackupEventTestFile.evtx")

# win32evtlog.ClearEventLog(pHandle, "C:\\test\BackupEventTestFile2.evtx")
# 안됨

# win32evtlog.ClearEventLog(pHandle, None)
# 안됨

# win32evtlog.BackupEventLog(pHandle, "BackupEventTestFile2.evtx")
# 됨

'''
flag = win32evtlog.EVENTLOG_SEQUENTIAL_READ | win32evtlog.EVENTLOG_BACKWARDS_READ

num = win32evtlog.GetNumberOfEventLogRecords(pHandle)
print(f"{num}")

for i in range(num):
    x = win32evtlog.ReadEventLog(pHandle, flag, 0)

    for j in x:
        print(f"{j.TimeGenerated}")
'''
# 됨
        
win32evtlog.CloseEventLog(pHandle)

주석을 해제하면서 실행해보시면, 결과를 아실 수 있습니다.ㅎㅎ

반응형

댓글()

11. [pywin32] ClearEventLog() 함수

pywin32/win32evtlog|2020. 7. 25. 13:47

ClearEventLog(handle, eventLogName)

 

이벤트 로그의 내용을 모두 지우는 함수입니다. 지울때 백업을 할 지 정할 수 있습니다.

 

인자로는 handle : int, eventLogName : PyUnicode 가 있습니다.

 

handle은 클리어할 이벤트 로그의 핸들로 OpenEventLog 함수의 리턴값입니다.

 

eventLogName은 이벤트 로그를 지우기전에 백업할 경우 작성하는 곳입니다.

BackupEventLog 함수의 eventLogName 인자와 사용법이 같습니다.(BackupEventLog 함수 참조)

만약, 백업을 하지 않겠다면 None으로 설정하시면 됩니다.

import win32evtlog

pHandle = win32evtlog.OpenEventLog(None, "Application")

win32evtlog.ClearEventLog(pHandle, "C:\\test\BackupEventTestFile.evtx")
# 백업하고 clear

win32evtlog.ClearEventLog(pHandle, None)
# 그냥 clear

win32evtlog.CloseEventLog(pHandle)

위 코드의 실행 결과 test폴더에 백업 파일이 생기고 이벤트로그가 다 지워졌습니다.

반응형

댓글()

10. [pywin32] BackupEventLog() 함수

pywin32/win32evtlog|2020. 7. 25. 13:38

BackupEventLog(handle, eventLogName)

 

이벤트 로그를 백업하는 함수입니다.

 

인자로는 handle : int, eventLogName : PyUnicode가 있습니다.

 

handle은 백업할 이벤트 로그의 핸들값으로 OpenEventLog 함수의 리턴값입니다.

 

eventLogName은 이벤트 로그를 어디에 무슨 이름으로 백업할지 정합니다.

상대경로와 절대경로를 사용할 수 있습니다.

 

import win32evtlog

pHandle = win32evtlog.OpenEventLog(None, "Application")

win32evtlog.BackupEventLog(pHandle, "BackupEventTestFile.evtx")
win32evtlog.BackupEventLog(pHandle, "C:\\test\BackupEventTestFile.evtx")

win32evtlog.CloseEventLog(pHandle)

위 코드의 실행 결과 위코드를 실행시킨 폴더와 C드라이브의 test 폴더내에 백업파일이 생겼을 겁니다.(test폴더는 사전에 미리 만들어야 합니다.)

반응형

댓글()

9. [pywin32] ReadEventLog() 함수

pywin32/win32evtlog|2020. 7. 25. 00:25

[object,...] = ReadEventLog(Handle, Flags , Offset , Size )

 

OpenEventLog로 열었던 이벤트 로그의 내용을 읽어오는 함수입니다.

 

인자로는 Handle : PyHANDLE, Flags : int, Offset : int, Size=4096 : int가 있습니다.

 

Handle 은 OpenEventLog의 리턴값인 PyEVTLOG_HANDLE 값이 들어갈 수 있습니다

PyEVTLOG_HANDLE이 PyHANDLE을 상속했기 때문에 가능합니다.

 

Flags는 로그를 어떤식으로 읽을지 정하는 값입니다.

의미
win32evtlog.EVENTLOG_SEEK_READ 로그를 Offset 부터 읽는다.
* 현재 이 값은 오류로 인해 잘 되지 않는 듯 합니다.
support.microsoft.com/ko-kr/help/177199/bug-readeventlog-fails-with-error-87
win32evtlog.EVENTLOG_SEQUENTIAL_READ 로그를 순서대로 읽는다.
의미
win32evtlog.EVENTLOG_FORWARDS_READ 로그를 옛날 거부터 읽는다.(old to new)
win32evtlog.EVENTLOG_BACKWARDS_READ 로그를 최신 거 부터 읽는다.(new to old)

Flag 값은 위의 값을 조합해서 설정하니다.

 

Offset은 win32evtlog.EVENTLOG_SEEK_READ이 설정될 때 의미있는 값입니다. 로그를 Offset부터 읽습니다.

 

Size=4096은 리턴값의 사이즈인데, 4096의 기본값을 사용하면 될 듯 합니다.

 

ReadEventLog 함수의 리턴값은 PyEventLogRecord Object를 갖는 리스트 형식인 듯 합니다.

PyEventLogRecord 의 속성 : timgolden.me.uk/pywin32-docs/PyEventLogRecord.html

import win32evtlog

pHandle = win32evtlog.OpenEventLog(None, "Application")
# Application 로그를 오픈

flag = win32evtlog.EVENTLOG_SE | win32evtlog.EVENTLOG_BACKWARDS_READ

num = win32evtlog.GetNumberOfEventLogRecords(pHandle)
# Application 로그의 현재 갯수 출력
print(f"{num}")

for i in range(num): # 로그의 현재 갯수 만큼 호출
    x = win32evtlog.ReadEventLog(pHandle, flag, 0)
    # 로그 Read    

    for j in x:
        print(f"{j.TimeGenerated}")
        # 편의상 시간 정보만 출

win32evtlog.CloseEventLog(pHandle)
# 로그 핸들 반환

예제를 실행한 결과로 227개의 로그를 최신거 부터 순서대로 시간 정보만을 출력한 결과입니다.

반응형

댓글()

8. [pywin32] GetOldestEventLogRecord() 함수

pywin32/win32evtlog|2020. 7. 24. 23:53

int = GetOldestEventLogRecord(handle)

 

OpenEventLog 함수로 열었던 이벤트 로그에 지금까지 몇개의 로그가 쌓였는지 알려주는 함수입니다.

 

GetNumberOfEventLogRecords 함수가 현재의 로그 갯수를 알려준다면, GetOldestEventLogRecord 함수는 지금까지 쌓인 총 로그 갯수를 알려줍니다.

 

인자로는 handle : int 가 있습니다.

 

handle은 OpenEventLog 함수의 리턴값인 PyEVTLOG_HANDLE 값이 들어갈 수 있습니다.

 

import win32evtlog

pHandle = win32evtlog.OpenEventLog(None, "Application")
# Application 로그를 오픈
num = win32evtlog.GetOldestEventLogRecord(pHandle)
print(f"{num}")
# Application 로그의 총 갯수 출력
win32evtlog.CloseEventLog(pHandle)
# 로그 핸들 반환

실행 결과 Application 로그가 지금까지 209885 개 쌓였다고 하는군요ㅎㅎ

이것도 GetNumberOfEventLogRecords 처럼 이벤트 뷰어에서 확인해보고 싶지만 알 수가 없네요.

실행 결과를 믿어야겠습니다.ㅎㅎ

반응형

댓글()

7. [pywin32] GetNumberOfEventLogRecords() 함수

pywin32/win32evtlog|2020. 7. 24. 23:47

int = GetNumberOfEventLogRecords(handle)

 

OpenEventLog 함수로 열었던 이벤트 로그에 몇개의 로그가 쌓였는지 알려주는 함수입니다.

 

인자로는 handle : int 가 있습니다.

 

handle은 OpenEventLog 함수의 리턴값인 PyEVTLOG_HANDLE 값이 들어갈 수 있습니다.

 

 

import win32evtlog

pHandle = win32evtlog.OpenEventLog(None, "Application")
# Application 로그를 오픈
num = win32evtlog.GetNumberOfEventLogRecords(pHandle)
print(f"{num}")
# Application 로그 갯수 출력
win32evtlog.CloseEventLog(pHandle)
# 로그 핸들 반환

실행 결과 저는 227개의 로그가 있다고 합니다.

실제 이벤트 뷰어를 확인해보겠습니다.

여기서도 227개가 있다고 하는군요ㅎㅎ

반응형

댓글()

6. [pywin32] CloseEventLog() 함수

pywin32/win32evtlog|2020. 7. 24. 23:35

CloseEventLog(handle)

 

OpenEventLog 함수로 열었던 이벤트 로그 핸들값을 반환하는 함수입니다.

 

인자로는 handle : int 가 있습니다.

 

handle은 OpenEventLog 함수의 리턴값인 PyEVTLOG_HANDLE 값이 들어갈 수 있습니다.

 

 

import win32evtlog
pHandle = win32evtlog.OpenEventLog(None, "Application")

win32evtlog.CloseEventLog(pHandle)

기존에 있던 Applicaton 로그를 열었다가 닫아주는 예제입니다.

반응형

댓글()

5. [pywin32] OpenEventLog() 함수

pywin32/win32evtlog|2020. 7. 24. 23:30

PyEVTLOG_HANDLE = OpenEventLog(serverName, sourceName )

 

OpenEventLog 함수는 이벤트 로그에 대한 핸들값을 획득하는 함수입니다.

 

인자로는 serverName : PyUnicode, sourceName : PyUnicode 가 있습니다.

 

PyEVTLOG_HANDLE은 이벤트 로그에 대한 핸들값을 위한 형식입니다.

 

serverName은 이벤트 로그가 있는 원격 서버의 이름입니다. None으로 설정 시 로컬 컴퓨터를 뜻합니다.

 

sourceName은 이벤트 로그의 이름입니다. 이벤트 로그에서 원본 이라고 표기되는 항목입니다.

sourceName은 반드시 다음의 레지스트리 경로에 사전 등록이 되있어야 합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\sourceName(있어야 함)

 

OpenEventLog 함수의 리턴값은 PyEVTLOG_HANDLE 값이며, 이는 추후 로그를 다룰 때 사용합니다.

 

 

import win32evtlog
pHandle = win32evtlog.OpenEventLog(None, "Application")

win32evtlog.CloseEventLog(pHandle)

 

기존에 있던 Applicaton 로그를 열었다가 닫아주는 예제입니다.

 

CloseEventLog에 대해서는 다음장에서 설명하겠습니다.

반응형

댓글()

4. [pywin32] ReportEvent() 함수

pywin32/win32evtlog|2020. 7. 19. 19:44

ReportEvent(EventLog, Type, Category, EventID, UserSid, Strings, RawData)

 

ReportEvent 함수는 실제로 이벤트 로그를 만드는 함수입니다.

 

인자로는 EventLog : PyHANDLE, Type : int, Category : int, EventID : int, rUserSid : PySID, Strings : sequence, RawData : str 가 있습니다.

 

PyHANDLE 은 pywin32에서 정의한 타입으로 핸들값을 위한 형식입니다.

 

PySID 는 pywin32에서 정의한 타입으로 SID를 위한 형식입니다.

 

EventLog는 이벤트 로그에 대한 핸들 값으로 RegisterEventSource 함수의 리턴값인 핸들 값을 넣어주면 됩니다.

 

Type은 로그 타입으로 win32con.EVENTLOG_* 값 중 6가지를 사용합니다.

 * win32con에 대한 설명은 win32con 페이지 참조

 

의미
win32con.EVENTLOG_AUDIT_SUCCESS 감사 성공 이벤트
win32con.EVENTLOG_AUDIT_FAILURE 감사 실패 이벤트
win32con.EVENTLOG_ERROR_TYPE 오류 수준 이벤트
win32con.EVENTLOG_INFORMATION_TYPE 정보 수준 이벤트
win32con.EVENTLOG_SUCCESS 성공 이벤트
win32con.EVENTLOG_WARNING_TYPE 경고 수준 이벤트

Category는 이벤트 로그를 어느 카테고리에 포함 시킬지 정하는 값인데 이건 이벤트 로그에 대응되는 message text file에서 정의해야 합니다. 이것에 대해서는 추후 설명하겠습니다. 일단 여기서는 1로 하겠습니다.

 

EventID는 이벤트 로그의 이벤트 ID를 설정하는 값인데 이것도 message text fil과 관계가 있습니다. 일단 여기서는 1로 하겠습니다.

 

UserSid는 사용자의 SID를 설정하는 값인데, win32api를 이용해서 SID를 추출할 수 있습니다. 이것도 추후 설명하겠습니다. 일단 여기서는 None으로 하겠습니다.

 

Strings 는 이벤트 로그의 이벤트 데이터에 포함시킬 값입니다.

 

RawData 는 이벤트 로그의 이벤트 데이터에 포함시킬 바이너리 값입니다.

 

 

import win32evtlog
import win32con


evHandle = win32evtlog.RegisterEventSource(None, "Application")
# 로그 이벤트 소스 등록
# 레지스트리에 있어야함

win32evtlog.ReportEvent(evHandle, win32con.EVENTLOG_AUDIT_SUCCESS,
                        1, 1, None, "test", b"rawdata")

win32evtlog.ReportEvent(evHandle, win32con.EVENTLOG_AUDIT_FAILURE,
                        1, 1, None, "test", b"rawdata")

win32evtlog.ReportEvent(evHandle, win32con.EVENTLOG_ERROR_TYPE,
                        1, 1, None, "test", b"rawdata")

win32evtlog.ReportEvent(evHandle, win32con.EVENTLOG_INFORMATION_TYPE,
                        1, 1, None, "test", b"rawdata")

win32evtlog.ReportEvent(evHandle, win32con.EVENTLOG_SUCCESS,
                        1, 1, None, "test", b"rawdata")

win32evtlog.ReportEvent(evHandle, win32con.EVENTLOG_WARNING_TYPE,
                        1, 1, None, "test", b"rawdata")

# 이벤트 로그 추가

win32evtlog.DeregisterEventSource(evHandle)
# 등록한 이벤트 소스 해제

앞에서 설명한 RegisterEventSource 함수와 DeregisterEventSource 함수 사이에 추가하였습니다.

그 결과를 이벤트 뷰어의 응용 프로그램 로그에서 확인할 수 있습니다.

반응형

댓글()

3. [pywin32] DeregisterEventSource() 함수

pywin32/win32evtlog|2020. 7. 19. 18:20

DeregisterEventSource(handle)

 

 

RegisterEventSource 함수로 등록한 이벤트 소스를 해제하는 함수입니다.

 

인자로는 handle:int가 있으며, RegisterEventSource 함수에서의 리턴값이 들어가게 됩니다.

(RegisterEventSource 함수에 대해서는 RegisterEventSource 함수 설명 참조)

 

import win32evtlog 

evHandle = win32evtlog.RegisterEventSource(None, "Application")
# 로그 이벤트 소스 등록
# 레지스트리에 있어야함

win32evtlog.DeregisterEventSource(evHandle)
# 등록한 이벤트 소스 해제

위 코드의 실행 결과는 아무것도 띄우지 않지만 에러가 나오지 않았다면 제대로 등록이 되고 해제되었을 겁니다.

반응형

'pywin32 > win32evtlog' 카테고리의 다른 글

6. [pywin32] CloseEventLog() 함수  (0) 2020.07.24
5. [pywin32] OpenEventLog() 함수  (2) 2020.07.24
4. [pywin32] ReportEvent() 함수  (0) 2020.07.19
2. [pywin32] RegisterEventSource() 함수  (0) 2020.07.19
1. [pywin32] win32evtlog 소개  (0) 2020.07.19

댓글()

2. [pywin32] RegisterEventSource() 함수

pywin32/win32evtlog|2020. 7. 19. 18:14

int = RegisterEventSource(serverName, sourceName )

 

이벤트 로그를 어떤 이름으로 남길 것인지 등록하는 함수입니다.

 

인자로는 serverName:PyUnicode 와 sourceName:PyUnicode 이 있습니다.

 

PyUnicode는 pywin32에서 정의한 타입으로 string과 같다고 생각하시면 됩니다.

 

serverName은 로그를 남길 원격 서버명입니다. None으로 하시면 현재 작업하는 로컬 컴퓨터에 이벤트 로그가 쌓입니다.

 

sourceName은 로그를 어떤 이름으로 남길 지 정하는 것으로 event source, 이벤트 로그에서 원본 이라고 표기되는 항목입니다.

sourceName은 반드시 다음의 레지스트리 경로에 사전 등록이 되있어야 합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\sourceName(있어야 함)

 

RegisterEventSource() 함수의 리턴값은 int 형식의 handle 값이며, 이는 추후 등록된 이벤트 소스를 해제할 때 사용합니다.

 

자신만의 이벤트 소스 명을 만들 수 있지만 이번에는 기존에 있는 걸로 해보겠습니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\Application 의 이름으로 이벤트 소스를 등록해보겠습니다.

 

import win32evtlog

evHandle = win32evtlog.RegisterEventSource(None, "Application")
# 로그 이벤트 소스 등록
# 레지스트리에 있어야함
"""
HKEY_LOCAL_MACHINE
   SYSTEM
      CurrentControlSet
         Services
            EventLog
               Application
                  AppName(여기에 있어야 함)
"""

win32evtlog.DeregisterEventSource(evHandle)
# 등록한 이벤트 소스 해제

위 코드의 실행 결과는 아무것도 띄우지 않지만 에러가 나오지 않았다면 제대로 등록이 되고 해제되었을 겁니다.

 

DeregisterEventSource() 함수에 대해서는 다음에 설명하겠습니다ㅎㅎ

반응형

댓글()

1. [pywin32] win32evtlog 소개

pywin32/win32evtlog|2020. 7. 19. 17:58

win32evtlog는 windows의 이벤트 로그와 관련된 api를 다루는 모듈입니다.

 

윈도우 비스타 이후 버전에서 사용할 수 있으며, xp에서 사용하려면 에러가 날 거라고 합니다.

 

저희는 windows 7이기 때문에 문제없이 동작할 거 같습니다.ㅎㅎ

 

다음의 12개 함수를 제공합니다.

 

  1. RegisterEventSource
  2. DeregisterEventSource
  3. ReportEvent
  4. OpenEventLog
  5. CloseEventLog
  6. GetNumberOfEventLogRecords
  7. GetOldestEventLogRecord
  8. ReadEventLog
  9. BackupEventLog
  10. ClearEventLog
  11. OpenBackupEventLog
  12. NotifyChangeEventLog

 

[pywin32/win32evtlog] - 2. [pywin32] RegisterEventSource() 함수

 

2. [pywin32] RegisterEventSource() 함수

int = RegisterEventSource(serverName, sourceName ) 이벤트 로그를 어떤 이름으로 남길 것인지 등록하는 함수입니다. 인자로는 serverName:PyUnicode 와 sourceName:PyUnicode 이 있습니다. PyUnicode는 pywin32..

ssjune.tistory.com

[pywin32/win32evtlog] - 3. [pywin32] DeregisterEventSource() 함수

 

3. [pywin32] DeregisterEventSource() 함수

DeregisterEventSource(handle) RegisterEventSource 함수로 등록한 이벤트 소스를 해제하는 함수입니다. 인자로는 handle:int가 있으며, RegisterEventSource 함수에서의 리턴값이 들어가게 됩니다. (RegisterEve..

ssjune.tistory.com

[pywin32/win32evtlog] - 4. [pywin32] ReportEvent() 함수

 

4. [pywin32] ReportEvent() 함수

ReportEvent(EventLog, Type, Category, EventID, UserSid, Strings, RawData) ReportEvent 함수는 실제로 이벤트 로그를 만드는 함수입니다. 인자로는 EventLog : PyHANDLE, Type : int, Category : int, EventID..

ssjune.tistory.com

[pywin32/win32evtlog] - 5. [pywin32] OpenEventLog() 함수

 

5. [pywin32] OpenEventLog() 함수

PyEVTLOG_HANDLE = OpenEventLog(serverName, sourceName ) OpenEventLog 함수는 이벤트 로그에 대한 핸들값을 획득하는 함수입니다. 인자로는 serverName : PyUnicode, sourceName : PyUnicode 가 있습니다. PyEV..

ssjune.tistory.com

[pywin32/win32evtlog] - 6. [pywin32] CloseEventLog() 함수

 

6. [pywin32] CloseEventLog() 함수

CloseEventLog(handle) OpenEventLog 함수로 열었던 이벤트 로그 핸들값을 반환하는 함수입니다. 인자로는 handle : int 가 있습니다. handle은 OpenEventLog 함수의 리턴값인 PyEVTLOG_HANDLE 값이 들어갈 수 있..

ssjune.tistory.com

[pywin32/win32evtlog] - 7. [pywin32] GetNumberOfEventLogRecords() 함수

 

7. [pywin32] GetNumberOfEventLogRecords() 함수

int = GetNumberOfEventLogRecords(handle) OpenEventLog 함수로 열었던 이벤트 로그에 몇개의 로그가 쌓였는지 알려주는 함수입니다. 인자로는 handle : int 가 있습니다. handle은 OpenEventLog 함수의 리턴값인..

ssjune.tistory.com

[pywin32/win32evtlog] - 8. [pywin32] GetOldestEventLogRecord() 함수

 

8. [pywin32] GetOldestEventLogRecord() 함수

int = GetOldestEventLogRecord(handle) OpenEventLog 함수로 열었던 이벤트 로그에 지금까지 몇개의 로그가 쌓였는지 알려주는 함수입니다. GetNumberOfEventLogRecords 함수가 현재의 로그 갯수를 알려준다면, G..

ssjune.tistory.com

[pywin32/win32evtlog] - 9. [pywin32] ReadEventLog() 함수

 

9. [pywin32] ReadEventLog() 함수

[object,...] = ReadEventLog(Handle, Flags , Offset , Size ) OpenEventLog로 열었던 이벤트 로그의 내용을 읽어오는 함수입니다. 인자로는 Handle : PyHANDLE, Flags : int, Offset : int, Size=4096 : int가..

ssjune.tistory.com

[pywin32/win32evtlog] - 10. [pywin32] BackupEventLog() 함수

 

10. [pywin32] BackupEventLog() 함수

BackupEventLog(handle, eventLogName) 이벤트 로그를 백업하는 함수입니다. 인자로는 handle : int, eventLogName : PyUnicode가 있습니다. handle은 백업할 이벤트 로그의 핸들값으로 OpenEventLog 함수의 리턴..

ssjune.tistory.com

[pywin32/win32evtlog] - 11. [pywin32] ClearEventLog() 함수

 

11. [pywin32] ClearEventLog() 함수

ClearEventLog(handle, eventLogName) 이벤트 로그의 내용을 모두 지우는 함수입니다. 지울때 백업을 할 지 정할 수 있습니다. 인자로는 handle : int, eventLogName : PyUnicode 가 있습니다. handle은 클리어할..

ssjune.tistory.com

[pywin32/win32evtlog] - 12. [pywin32] OpenBackupEventLog() 함수

 

12. [pywin32] OpenBackupEventLog() 함수

PyEVTLOG_HANDLE = OpenBackupEventLog(serverName, fileName ) OpenEventLog 함수와 비슷합니다. 차이가 있다면, 이 함수는 기존에 백업된 이벤트 로그 파일에 대한 핸들값을 리턴합니다. 인자는 serverName : Py..

ssjune.tistory.com

[pywin32/win32evtlog] - 13. [pywin32] NotifyChangeEventLog() 함수

 

13. [pywin32] NotifyChangeEventLog() 함수

NotifyChangeEventLog(handle, handle) 이벤트 로그가 쓰여지면 알려주는 함수입니다. 인자로는 handle : int, handle : int 가 있습니다. handle 은 OpenEventLog 함수의 리턴값으로 감시할 이벤트 로그의 핸들값..

ssjune.tistory.com

 

반응형

댓글()