日誌檔案是作業系統的一部分,那麼肯定有應用程式程式設計介面(api)來支援建立日誌記錄
例項:handle h;
if ((h = registereventsource(null,text("metalive"))) == null)
const char* ps = "pszs1pszs2pszs3";
word wtype=eventlog_error_type;//eventlog_information_type;
dword dwid=5001;
int istr = 1;
bool bret;
dword dword;
if (h)
//基於 windows xp 的計算機將事件記錄在以下三種日誌中:
1. 應用程式日誌
應用程式日誌包含由程式記錄的事件。例如,資料庫程式可能在應用程式日誌中記錄檔案錯誤。寫入到應用程式
日誌中的事件是由軟體程式開發人員確定的。
2. 安全日誌
安全日誌記錄有效和無效的登入嘗試等事件,以及與資源使用有關的事件(如建立、開啟或刪除檔案)。例如,
在啟用登入審核的情況下,每當使用者嘗試登入到計算機上時,都會在安全日誌中記錄乙個事件。您必須以 administrator
或 administrators 組成員的身份登入,才能開啟、使用安全日誌以及指定將哪些事件記錄在安全日誌中。
3. 系統日誌
系統日誌包含 windows xp 系統元件所記錄的事件。例如,如果在啟動過程中未能載入某個驅動程式,則會在
系統日誌中記錄乙個事件。windows xp 預先確定由系統元件記錄的事件。
本文,我們專注於第一類應用程式日誌,介紹如何寫入一條eventlog。windows使用reportevent 報告應用程式訊息,
下面就對這個函式做點簡單的介紹。
handleheventlog,
// registereventsource
返回的handle
wordwtype,
// 要記錄的事件型別
wordwcategory,
// 事件種類
dworddweventid,
// 事件標示
psidlpusersid,
// 使用者安全標示(可選)
wordwnumstrings,
// 訊息的字串數
dworddwdatasize,
// 以位元組為單位的二進位制資料的大小
lpctstr*lpstrings,
// 訊息本身
lpvoidlprawdata
// 二進位制資料
);
parameters
heventlog
事件標誌。這個是 registereventsource 返回的handle.
wtype
事件的型別。可以是如下中的乙個:
value meaning
eventlog_error_type error event
eventlog_warning_type warning event
eventlog_information_type information event
eventlog_audit_success success audit event
eventlog_audit_failure failure audit event
wcategory
指出訊息種類。這個地方是由源自己定義的,可以是任何值。
dweventid
事件標識。根據我的理解,這裡的標識在使用時,會又源解釋為具體的含義。比如:2001表示檔案開啟錯誤等等。
因此,要想設定完整的event log還需要在系統中註冊乙個解釋的服務程式。示例程式並沒有設計這個服務,
讀者可以參考另外的那個vb程式。
lpusersid
指向使用者安全標示。當不需要安全標示時,該引數可以為null.
wnumstrings
給定lpstrings 指向的陣列中字串組的數量。0表示當前沒有字串組。
dwdatasize
給出將寫入evenet log的資料的大小,以位元組為單位。如果這個引數為0,表示當前沒有事件資料。
lpstrings
指向乙個緩衝區,其中是乙個以0為結尾的字串陣列,這個陣列將會新增到訊息中。即使dwdatasize 引數為0,
這個引數也必須是有效的指標(或者為null)。陣列中每個字串最大為32k 位元組。
lprawdata
指向包含二進位制資料的緩衝區。即使dwdatasize 引數為0,該項也必須是乙個有效的指標(或者為null).
return values
如果執行成功,返回非零值,表示事件入口已經寫入日誌。
如果執行不成功,返回0.
檢視 Windows 應用程式日誌
在 開始 選單上,依次指向 所有程式 管理工具 然後單擊 事件檢視器 在事件檢視器中,單擊 應用程式 sql server 事件由 資源 列中的mssqlserver項 命名例項以mssql 標識 標識。sql server 事件由 sqlserveragent 項標識 對於已命名的 sql ser...
iOS 捕獲應用程式崩潰日誌
作為一名ios移動應用開發者,為了確保你的應用程式正確無誤,在將應用程式提交到應用商店之前,你必定會進行大量的測試工作 而且在你測試的過程中應用程式執行的很好,但是在應用商店上線之後,還是有使用者抱怨應用程式會 閃退 現在作為應用程式的開發人員你肯定會準備開啟 準備修復 閃退 的問題,但是就在這個時...
C 應用程式域
在作業系統中,程式和程式之間應實現某種形式的隔離,防止程式和程式之間產生不可預知的影響,這種隔離是必須的。在dotnet技術之前,通常採用程序來形成隔離邊界。每乙個應用程式被載入到單獨的程序中,每個程序都有其私有的記憶體,執行在乙個程序中的應用程式不能寫入另乙個應用程式的記憶體,您也不能在兩個程序間...