我正在创建一个ASP.NET应用程序,它将一些东西记录到Windows EventLog.要执行此操作,必须首先创建事件源.这需要管理权限,所以我无法在ASP.NET应用程序中执行此操作.
是否存在与Windows捆绑在一起的可以创建事件日志源的现有命令行应用程序,还是我必须自行推出?
一个例子:
eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYEVENTSOURCE /D "My first log"
这将创建一个在事件日志下命名为事件类型的新事件源.MYEVENTSOURCE
APPLICATION
INFORMATION
我认为这个实用程序仅包含在XP之后.
Windows IT Pro:JSI技巧5487.Windows XP包含用于创建自定义事件的EventCreate实用程序.
类型eventcreate /?
在命令提示符
Microsoft TechNet:Windows命令行参考:Eventcreate
SS64:Windows命令行参考:Eventcreate
为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
您还可以使用以下命令使用Windows PowerShell:
if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) { [System.Diagnostics.EventLog]::CreateEventSource($source, "Application") }
确保在调用CreateEventSource之前检查源是否不存在,否则将引发异常.
欲了解更多信息:
http://msdn.microsoft.com/en-us/library/9t766zhb.aspx
eventcreate2允许您创建自定义日志,而 eventcreate则不会.