.net framework 2.0開始,可以使用
event
log建構函式在windows系統日誌
裡新增內容,一切看上去是如此的簡單。只是
……會涉及到一點點的許可權問題,必須要注意一下。
使用event
log時,涉及到乙個叫做「**」(
source
)的引數(一般用來記錄訊息的出處)。比如將該引數設為「
myexe
」,那麼寫系統日誌的時候,
eventlog
.writeentry
就會去登錄檔裡找這個叫做「
myexe
」的節點,如果找不到,那它會建立乙個
「myexe
」節點作為**,然後開始寫入系統日誌。的確是很人性化的處理辦法。只是,要在登錄檔裡建立乙個節點,沒有相當的許可權是不行的,比如說系統管理員的許可權。偏偏寫系統日誌的通常是一些服務賬戶(例如:
net service)
,這些賬戶往往不會有這麼大的許可權。
解決方案的話。
1. 2.
**中模擬管理員許可權(個人不是很喜歡,因為要輸入密碼……)
下面是使用
event
log的乙個例子。
using
system;
using
system.diagnostics;
using
system.collections.generic;
using
system.security;
using
system.text;
namespace
//////
//////
///向日誌管理器寫入系統日誌
//////
訊息事件**
///要在訊息事件中寫入的資訊
///訊息事件型別
///訊息事件的事件id。(0~65535)
///系
統日誌儲存空
間不足時///
作業系統日誌權
限不足時
static
public
void writeentry(string source, string message, logtype type, int eventid)
eventlog.writeentry(source, message, getlogentrytype(type), eventid, category);
}catch (securityexception)
eventlog.writeentry(source, message, getlogentrytype(type), eventid, category);}}
}///
///向日誌管理器寫入系統日誌
//////
訊息事件**
///要在訊息事件中寫入的資訊
///訊息事件的事件id。(0~65535)
static
public
void writeentry(string source, exception ex, int eventid)}}
writeentry(source, sb.tostring(), logtype.error, eventid);
}///
///將logtype型別
轉換成eventlogentrytype型別
//////
logtype
///eventlogentrytype
///轉換錯誤時
丟擲的例外型別
static
private
eventlogentrytype getlogentrytype(logtype type)
else}}
}
C 寫系統日誌
using system using system.collections.generic using system.linq using system.text using system.diagnostics 建立系統事件日誌分類 註冊事件源 比如說這個日誌 於某乙個應用程式 日誌名稱 事件列表...
C 實現寫系統日誌的方法
using system using system.collections.generic using system.linq using system.text using system.diagnostics namespace consoleapp 建立系統事件日誌分類 註冊事件源 比如說這個...
Windows系統日誌審計
實驗背景針對網路中windows伺服器攻擊經常發生的情況,管理員需要在伺服器工作出現異常情況後,進行快速的響應,並且需要及時定位受到入侵的服務,發現黑客入侵的手段,找到系統的脆弱點並且加以修補,windows server 提供的日誌工具可以協助我們完成相關操作。windows系統中日誌分為三種,分...