标签: event-log

.NET:如何在EventLog Entry中设置用户信息?

System.Diagnostics.EventLog类提供了与Windows事件日志交互的方法.我一直用它来进行简单的记录......

System.Diagnostics.EventLog.WriteEntry("MyEventSource", "My Special Message")
Run Code Online (Sandbox Code Playgroud)

有没有办法使用.NET在生成的事件日志条目中设置用户信息?

.net c# vb.net event-log

4
推荐指数
1
解决办法
4337
查看次数

C#获取Windows服务启动的日期/时间

有没有办法获得服务上次在C#中启动的日期/时间?

我现在正在使用此代码来检查服务的状态:

ServiceController sc = new ServiceController(serviceName);
// check sc.status for "Running" etc... with a Switch statement... 
Run Code Online (Sandbox Code Playgroud)

我可以用这个对象吗?还是需要WMI?

原因:我正在编写一个小BizTalk监视器,常见的问题是人们经常忘记在部署后重新启动BizTalk服务(主机实例).我想展示它上次开始的时间.

c# service wmi process event-log

4
推荐指数
1
解决办法
1万
查看次数

我如何阅读Windows服务的事件日志

我正在尝试修改已经编写的Windows服务.

我看到源有一个System.diagnostic.EventLog对象,它记录了服务的不同操作.

我想知道如何阅读这个日志.从语义来看,似乎Eventlog正在记录几个服务操作.

这个日志存储在哪里,我怎么能看到它,我需要访问它,因为我的服务有时会间歇性地停止.

我试图谷歌它但没有找到任何可靠的答案.简单地说问题是什么是一个事件,我如何使用它.

c# windows event-log

4
推荐指数
1
解决办法
1万
查看次数

如何写入自定义事件日志?

我正在尝试将我的.Net Windows服务转到自定义事件日志.我正在使用EventLogInstaller安装应用程序时创建事件日志和源.我在这里读到,Windows注册源需要一段时间,因此他们建议您在尝试写入日志之前重新启动应用程序.

由于这是Windows服务,我不想强​​制重新启动计算机或让用户手动启动服务,因此我使用此代码等待日志存在,然后自动启动服务.

while (!(EventLog.Exists("ManageIT") || EventLog.SourceExists("ManageIT Client Service")))
{
    Thread.Sleep(1000);
}

System.ServiceProcess.ServiceController controller = new System.ServiceProcess.ServiceController("ManageIT.Client.Service");
controller.Start();
Run Code Online (Sandbox Code Playgroud)

我的问题是来自服务的事件仍然写入应用程序日志,虽然我可以在注册表编辑器中看到我的自定义日志,但它不会显示在Windows 7事件查看器中.

任何帮助都感激不尽.

.net c# windows-services event-log

4
推荐指数
1
解决办法
2万
查看次数

WIX:使用.NET消息文件创建EventSource

我正在使用WIX为我的应用程序创建一个安装程序.到目前为止一切正常.但是,我正在尝试在安装期间创建一个新的事件源,但这不会按预期工作.

我已经在这里阅读并理解了这个问题,但我有一个不同的情况,其中给定的解决方案似乎不能正常工作.以下是不同的做法:

  1. 我正在使用它WixNetFxExtension来确定.NET 3.5是否作为启动条件安装.
  2. 我使用WixUtilExtension到,因为它描述了用于32位/ 64位构建配置的东西在这里

我想做的是:在进行32位安装时使用32位框架的事件消息文件,否则使用64位框架的事件消息文件.

上面链接的SO问题中的一条评论建议使用以下内容让系统使用32位框架的事件消息文件:

<util:EventSource 
    Log="Application" 
    Name="*source name*"
    EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll"/>
Run Code Online (Sandbox Code Playgroud)

我修改了这个来解释这两种类型的设置:

<?if $(var.Platform) = x64 ?>
    <util:EventSource Log="..." Name="..." EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR64]EventLogMessages.dll" />
<?else ?>
    <util:EventSource Log="..." Name="..." EventMessageFile="[NETFRAMEWORK20INSTALLROOTDIR]EventLogMessages.dll" />
<?endif ?>
Run Code Online (Sandbox Code Playgroud)

在文件的开头,相同的<?if ...条件工作,相应地改变产品和foldernames.

代码上面的一些代码我正在使用以下代码来允许.NET Framework检测:

<PropertyRef Id="NETFRAMEWORK35"/>
<PropertyRef Id="NETFRAMEWORK20"/>

<Condition Message="...">
    <![CDATA[Installed OR NETFRAMEWORK35]]>
</Condition>
Run Code Online (Sandbox Code Playgroud)

当我运行安装程序时,一切似乎都有效,也创建了事件源,我也可以从我的应用程序中使用它,但是,我仍然得到未找到事件消息文件的信息.检查注册表我发现消息文件的路径丢失了:

EventMessageFile   REG_EXPAND_SZ    EventLogMessages.dll
Run Code Online (Sandbox Code Playgroud)

我期望32位/ 64位框架的路径也存在,但它似乎并没有被假定.

我在这做错了什么?

wix eventlog-source event-log wix3.5

4
推荐指数
1
解决办法
3182
查看次数

直接读取.evt/.evtx文件

你好有人知道怎么读.evt /.evtx这是Windows事件日志文件读取不使用提供的api,我想用FILE I/Oapis 读取它们C/C++.

或者如何将这些文件转换成.txt,我知道splunk这样做但不确定他们是如何做到这一点的.

c++ windows splunk event-log

4
推荐指数
1
解决办法
3750
查看次数

如何使用vbscript编写事件日志

我想在这个vbscript运行时编写事件日志.我该怎么办?

谢谢你的帮助.

vbscript event-log

4
推荐指数
1
解决办法
3万
查看次数

使用PowerShell过滤事件日志并导出为CSV

我有以下命令,它提供了我需要的信息,但我需要进一步过滤它:

Get-EventLog -LogName Security -ErrorAction SilentlyContinue | Select TimeWritten, ReplacementStrings | Export-Csv output.csv
Run Code Online (Sandbox Code Playgroud)

这提供了许多条目,例如:

09/11/2012 08:09:27                {S-1-5-18, SYSTEM, NT AUTHORITY, 0x3e7...} 
Run Code Online (Sandbox Code Playgroud)

我想删除ReplacementStrings中以"{S-1-5"开头的任何条目,但我尝试使用Where-Object并且-notlike没有任何区别!

我遇到的另一个问题是没有Export-Csv output.csv添加它在屏幕上显示就好了,但是它会像这样写入文件:

"09/11/2012 09:22:05","System.String[]"
Run Code Online (Sandbox Code Playgroud)

csv powershell filter event-log

4
推荐指数
1
解决办法
2万
查看次数

Starts..c中的Global.asax Application_Error等价物

我试图在将.NET应用程序写入事件日志之前捕获错误.我已经在接受这个问题的答案中看到,这样做的方法是在Global.asax中包含一个Application_Error(或Application_OnError它说的)函数.

但是,我们现在只切换到使用Startup.cs,并且无法确定如何进行等效调用.这个问题的公认答案表明这可能是不可能的.有没有人确切知道是否有相同的方法来处理这些错误?

c# asp.net error-handling startup event-log

4
推荐指数
1
解决办法
1937
查看次数

订阅Windows事件日志?

我正在开发一个项目,需要经常检查某些事件的Windows事件日志.我在想:

__PRE__

那么,当事件发生时(即事件id = 00001),我可以尽快在代码中获得通知?我正在使用c#.如果无法做到这一点,那么我将不得不继续搜索效率不高的事件日志.

谢谢

c# event-log event-viewer

4
推荐指数
1
解决办法
3537
查看次数