我正在创建一个ASP.NET应用程序,它会将一些内容记录到Windows EventLog。要执行此操作,必须首先创建事件源。这需要管理权限,所以我无法在ASP.NET应用程序中执行此操作。
是否存在与Windows捆绑在一起的可以创建事件日志源的现有命令行应用程序,还是我必须自行推出?
答案 0 :(得分:287)
一个例子:
eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYEVENTSOURCE /D "My first log"
这将在MYEVENTSOURCE
事件日志下创建一个名为APPLICATION
的新事件源,作为INFORMATION
事件类型< / em>的
我认为此实用程序仅包含在XP之后。
Windows IT专业版:JSI Tip 5487. Windows XP includes the EventCreate utility for creating custom events.
在CMD提示中输入eventcreate /?
Microsoft TechNet:Windows命令行参考:Eventcreate
SS64:Windows命令行参考:Eventcreate
答案 1 :(得分:168)
将此内容投入PowerShell 2.0及更高版本:
运行New-EventLog
一次以注册事件源:
New-EventLog -LogName Application -Source MyApp
然后使用Write-EventLog
写入日志:
Write-EventLog
-LogName Application
-Source MyApp
-EntryType Error
-Message "Immunity to iocaine powder not detected, dying now"
-EventId 1
答案 2 :(得分:42)
您还可以使用以下命令使用Windows PowerShell:
if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) {
[System.Diagnostics.EventLog]::CreateEventSource($source, "Application")
}
确保在调用CreateEventSource之前检查源是否存在,否则会引发异常。
欲了解更多信息:
答案 3 :(得分:11)
eventcreate2 可让您创建自定义日志,其中 eventcreate 不会。
答案 4 :(得分:4)
如果有人感兴趣,也可以通过添加一些注册表值手动创建事件源。
将以下行保存为.reg文件,然后通过双击将其导入注册表:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Application\YOUR_EVENT_SOURCE_NAME_GOES_HERE]
"EventMessageFile"="C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\EventLogMessages.dll"
"TypesSupported"=dword:00000007
这会创建一个名为YOUR_EVENT_SOURCE_NAME_GOES_HERE
的事件源。
答案 5 :(得分:1)
或者只使用命令行命令:
Eventcreate
答案 6 :(得分:-3)
您可以使用diagnostics.Event日志类创建自己的自定义事件。 打开一个Windows应用程序,然后单击一个按钮,执行以下代码。
System.Diagnostics.EventLog.CreateEventSource("ApplicationName", "MyNewLog");
“MyNewLog”表示您要为日志事件查看器提供的名称。
有关详细信息,请查看此链接 [http://msdn.microsoft.com/en-in/library/49dwckkz%28v=vs.90%29.aspx]