# 5.1.6.日誌

## 1.目的

* 日誌記錄陳述可以追蹤與理解程式的執行
* 日誌陳述的輸出比較方便過濾與查詢

## 2.日誌記錄函式庫

* 1.Windows API: ReportEvent
  * 1.在程式中呼叫API以在Windows Event log中留下紀錄

    ```
          #include "stdafx.h"
          #include <windows.h>

          int _tmain(int argc, _TCHAR* argv[])
          {
              LPTSTR lpszStrings[] = {"Called main() in file", __FILE__};
              HANDLE hEventSource = RegisterEventSource(NULL, "myService");
              if (hEventSource == NULL){
                     return 1;
              }
              ReportEvent(hEventSource,
                 EVENTLOG_INFORMATION_TYPE,
                 0,
                 0,
                 NULL,
                 2,
                 0,
                 (LPCSTR*)lpszStrings,
                 NULL);

              DeregisterEventSource(hEventSource);
              return 0;
          }
    ```
  * 2.檢視Windows Event log
    * 在開始功能表下輸入以下指令即可打開Windows Event log

      ```
            eventvwr.msc
      ```

      ![](https://4137043065-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4M0G8A3AbgfgoPuWWW%2F-M4M0INTQnUS90ldtPAg%2F-M4M0OaLkD7KzBdz0Fno%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202017-06-16%20%E4%B8%8A%E5%8D%8810.51.08.png?generation=1586302931654735\&alt=media) ![](https://4137043065-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4M0G8A3AbgfgoPuWWW%2F-M4M0INTQnUS90ldtPAg%2F-M4M0OaNIne6aoSzr901%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202017-06-16%20%E4%B8%8A%E5%8D%8810.54.08.png?generation=1586302932003047\&alt=media) ![](https://4137043065-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4M0G8A3AbgfgoPuWWW%2F-M4M0INTQnUS90ldtPAg%2F-M4M0OaPe6Xh7AtjzU9X%2F%E8%9E%A2%E5%B9%95%E5%BF%AB%E7%85%A7%202017-06-16%20%E4%B8%8A%E5%8D%8810.54.22.png?generation=1586302931851437\&alt=media)
