问题标签 [event-log]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
event-log - 如何在没有 EventMessageFile 的情况下读取 Windows 事件日志?
我有读取 Windows 事件日志的代码。它使用 OpenEventLog、ReadEventLog 并获取事件源和事件 ID。然后它在下面查找源
键,根据其中列出的内容加载适当的 DLL EventMessageFile
,最后用于FormatMessage
将事件字符串与消息 DLL 内容合并以获得最终的事件消息文本。这是推荐的方法,虽然有点痛苦,但效果很好。
直到...我去查找源并发现它没有一个EventMessageFile
,而是一个ProvideGuid
条目。这似乎是一种新方式(它们出现在 Vista 和 Windows 2008 上)。Uggh - 没有任何东西可以传递给 FormatMessage 来查找消息文本并合并到数据字符串中
:(
在注册表中搜索 guid 确实会导致对其他文件的引用(在 HTTP 源的情况下为 http.sys),但我永远无法获得完整的消息文本。我必须使用这些EvtOpenSession
API 吗?我希望不会,因为我已经EVENTLOGRECORD*
调用了 to ReadEventLog
,并且该软件需要在EvtOpenSession
不受支持的 Windows 2003 上运行(仅在 Vista 和 Windows 2008 上可用)。注意:Vista 上的某些源具有 ProviderGUID,而另一些具有 EventMessageFile,因此旧方法仍然可行。
因此,我所追求的是一种查看 ProviderGuid 并获取需要传递给 FormatMessage 以显示完整事件日志消息文本的 DLL 的方法。
感谢您的任何意见
c# - 如何以编程方式打开事件日志?
我使用通常的方法将错误记录到事件日志中:
并且想知道是否有一种方法可以调用此日志文件并将其显示给用户(以我自己的格式或像“事件查看器”一样直接打开事件日志文件)。
我在 %SystemRoot%\System32\Winevt\Logs\mylog.evtx 中找到了该文件,但不确定是否应该以这种方式处理它。理想情况下,我想模拟事件查看器的功能,但为我的应用程序定制。
event-log - 搜索事件日志以找出程序何时被卸载
我试图通过搜索事件日志来找出何时在 Win2k 机器上卸载程序。我应该搜索哪个日志,是否有任何好的关键字可以搜索以标记卸载事件?
file - 什么是事件记录?以及如何编写事件日志文件?
什么是事件记录?以及如何为应用程序编写事件日志文件?我想记录应用程序的所有活动,包括它何时使用 .dll 等,并显示应用程序的信息。
batch-file - 在 Windows Server 上备份事件日志的简单方法
是否可以创建一种简单的方法来备份事件日志,例如批处理文件或简单的应用程序?我需要让它在客户的网站上工作,其中的参考是非专家用户。谢谢
delphi - 将 Windows 事件日志改造为 Delphi 5 应用程序
我正在寻找一种(相当轻松)向小型旧版 Delphi 5 应用程序添加一些 Windows 应用程序事件日志支持的方法。我们只希望它在启动、关闭、无法连接到数据库等时记录下来。
我见过的几个解决方案/组件似乎表明我们需要创建一个资源 DLL,Windows 事件日志查看器在尝试读取我们的“条目”时将链接到该 DLL。虽然这看起来并不太繁琐,但我想如果/当我们将来进一步开发应用程序时,还需要记住其他一些事情——我们需要让这个 DLL 保持最新。
在未来的某个时候,我们希望将应用程序变成服务,可能是用 D2007 编写的。
那么任何人都可以推荐一条合适的路线来将事件添加到 D5 中的事件日志中吗?我正在寻找具体的“我们使用了这个并且没问题”的评论,而不是谷歌拖网(我可以自己做!)免费或付费,真的不介意 - 但我可以迁移到 D2007未来很重要。
windows - What is Windows Event Logging
Can anyone explain what is Windows Event Logging?
exception - 在 Windows 事件查看器中诊断 CLR 错误
我们有一个在生产中崩溃的 .NET 桌面应用程序。我们如何诊断错误?我想知道发生的异常类型、错误消息和堆栈跟踪。
因为我们的代码没有处理异常,所以我们收到了“此应用程序遇到问题,需要关闭” Windows 消息框。唯一的选择是关闭,没有调试按钮。
这篇 MSDN 文章建议查看 Windows 事件注册表。我在那里查了一下,里面的信息如下:
错误应用程序 Initect.Server.UI.exe,版本 0.12.9084.90,时间戳 0x49cac472,错误模块 KERNEL32.dll,版本 6.0.6001.18000,时间戳 0x4791a81d,异常代码 0xe0434f4d,错误偏移量 0x0002f35f,进程 id 0x44c,应用程序启动时间 019070x
这些信息如何告诉我异常类型、堆栈跟踪和错误消息?
logging - 事件源问题
为什么我的事件源名称 XXXXXXXXXXXX 中会附加一些字符?
事件查看器这样说:
找不到源 (XXXXXXXXXXXXtings\All Usõ) 中事件 ID (5) 的描述。本地计算机可能没有必要的注册表信息或消息 DLL 文件来显示来自远程计算机的消息。您可以使用 /AUXSOURCE= 标志来检索此描述;有关详细信息,请参阅帮助和支持。以下信息是事件的一部分:XXXXXXXXXXXXtings\All Usõ。
c# - 是否有内置方法对 .NET EventLog.Entries 集合中的条目进行二进制搜索?
我正在开发一个日志解析服务,用于捕获 Windows 事件日志中的特定安全事件。我最初的想法是使用 Microsoft 的LogParser,但除了选择预先已知的特定实例/事件 ID 之外,我并没有寻找任何功能。
经过一些基准测试后,我发现迭代整个 .NETEventLog.Entries
集合在提取数据方面比查询 Microsoft 的 LogParser 快 3 倍多。
最终,要提取的数据将保存在 SQL Server 数据库中。由于该服务每天都会执行此任务,因此我希望避免重复条目,并且我需要一种方法来查找EventLog.Entries
集合中尚未在数据库中的下一个条目。一旦找到初始条目,我就可以开始插入数据库。
我正要编写一个二分搜索,以使用DATETIME
数据库中最新的时间戳字段来查找此条目,并将其与集合TimeWritten
中某个项目的属性进行比较。EventLog.Entries
我可以这样做,但我想知道是否已经有内置方法来执行此搜索?