Vil*_*lx- 161 windows command-line event-log
我正在创建一个ASP.NET应用程序,它将一些东西记录到Windows EventLog.要执行此操作,必须首先创建事件源.这需要管理权限,所以我无法在ASP.NET应用程序中执行此操作.
是否存在与Windows捆绑在一起的可以创建事件日志源的现有命令行应用程序,还是我必须自行推出?
小智 294
一个例子:
eventcreate /ID 1 /L APPLICATION /T INFORMATION /SO MYEVENTSOURCE /D "My first log"
Run Code Online (Sandbox Code Playgroud)
这将创建一个在事件日志下命名为事件类型的新事件源.MYEVENTSOURCEAPPLICATIONINFORMATION
我认为这个实用程序仅包含在XP之后.
Windows IT Pro:JSI技巧5487.Windows XP包含用于创建自定义事件的EventCreate实用程序.
类型eventcreate /?在命令提示符
Microsoft TechNet:Windows命令行参考:Eventcreate
SS64:Windows命令行参考:Eventcreate
rou*_*tic 174
为PowerShell 2.0及更高版本投入使用:
运行New-EventLog一次以注册事件源:
New-EventLog -LogName Application -Source MyApp
Run Code Online (Sandbox Code Playgroud)然后Write-EventLog用来写日志:
Write-EventLog
-LogName Application
-Source MyApp
-EntryType Error
-Message "Immunity to iocaine powder not detected, dying now"
-EventId 1
Run Code Online (Sandbox Code Playgroud)Lui*_*cha 43
您还可以使用以下命令使用Windows PowerShell:
if ([System.Diagnostics.EventLog]::SourceExists($source) -eq $false) {
[System.Diagnostics.EventLog]::CreateEventSource($source, "Application")
}
Run Code Online (Sandbox Code Playgroud)
确保在调用CreateEventSource之前检查源是否不存在,否则将引发异常.
欲了解更多信息:
如果有人感兴趣,还可以通过添加一些注册表值来手动创建事件源。
将以下行另存为 .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
Run Code Online (Sandbox Code Playgroud)
这将创建一个名为 的事件源YOUR_EVENT_SOURCE_NAME_GOES_HERE。