EventLogInstaller 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使您能够安装和配置应用程序在运行时所读取或写入的事件日志。
public ref class EventLogInstaller : System::Configuration::Install::ComponentInstaller
public class EventLogInstaller : System.Configuration.Install.ComponentInstaller
type EventLogInstaller = class
inherit ComponentInstaller
Public Class EventLogInstaller
Inherits ComponentInstaller
- 继承
示例
下面的代码示例设置新事件源的安装属性。 代码示例设置源名称和事件日志名称,并将 添加到EventLogInstaller集合。Installers
#using <System.dll>
#using <System.Configuration.Install.dll>
using namespace System;
using namespace System::Configuration::Install;
using namespace System::Diagnostics;
using namespace System::ComponentModel;
[RunInstaller(true)]
ref class MyEventLogInstaller: public Installer
{
private:
EventLogInstaller^ myEventLogInstaller;
public:
MyEventLogInstaller()
{
// Create an instance of an EventLogInstaller.
myEventLogInstaller = gcnew EventLogInstaller;
// Set the source name of the event log.
myEventLogInstaller->Source = "NewLogSource";
// Set the event log that the source writes entries to.
myEventLogInstaller->Log = "MyNewLog";
// Add myEventLogInstaller to the Installer collection.
Installers->Add( myEventLogInstaller );
}
};
using System;
using System.Configuration.Install;
using System.Diagnostics;
using System.ComponentModel;
[RunInstaller(true)]
public class MyEventLogInstaller: Installer
{
private EventLogInstaller myEventLogInstaller;
public MyEventLogInstaller()
{
// Create an instance of an EventLogInstaller.
myEventLogInstaller = new EventLogInstaller();
// Set the source name of the event log.
myEventLogInstaller.Source = "NewLogSource";
// Set the event log that the source writes entries to.
myEventLogInstaller.Log = "MyNewLog";
// Add myEventLogInstaller to the Installer collection.
Installers.Add(myEventLogInstaller);
}
public static void Main()
{
MyEventLogInstaller myInstaller = new MyEventLogInstaller();
}
}
Imports System.Configuration.Install
Imports System.Diagnostics
Imports System.ComponentModel
<RunInstaller(True)> _
Public Class MyEventLogInstaller
Inherits Installer
Private myEventLogInstaller As EventLogInstaller
Public Sub New()
' Create an instance of an EventLogInstaller.
myEventLogInstaller = New EventLogInstaller()
' Set the source name of the event log.
myEventLogInstaller.Source = "NewLogSource"
' Set the event log that the source writes entries to.
myEventLogInstaller.Log = "MyNewLog"
' Add myEventLogInstaller to the Installer collection.
Installers.Add(myEventLogInstaller)
End Sub
Public Shared Sub Main()
End Sub
Dim myInstaller As New EventLogInstaller()
End Class
注解
EventLogInstaller安装事件日志时,Installutil.exe (安装程序工具) 使用 。 类 EventLogInstaller 只能在本地计算机上安装事件日志。
EventLogInstaller当应用程序写入事件日志时,请使用 类;应用程序无需使用事件日志安装程序来读取事件日志。 应用程序和服务应写入应用程序日志或自定义日志。 设备驱动程序应写入系统日志。
注意
安全日志是只读的。
安装程序将创建在 属性中指定的 Source 事件源,并将其注册为属性中指定的 Log 事件日志。 此行为类似于对组件调用CreateEventSourceEventLog。
WriteEvent使用 和 WriteEntry 方法将事件写入事件日志。 必须指定事件源才能写入事件;必须先创建并配置事件源,然后才能使用源编写第一个条目。
在应用程序安装期间创建新的事件源。 这允许操作系统有时间刷新其已注册的事件源列表及其配置。 如果操作系统尚未刷新其事件源列表,并且您尝试使用新源编写事件,则写入操作将失败。 可以使用 或 CreateEventSource 方法配置新源EventLogInstaller。 必须在计算机上具有管理权限才能创建新的事件源。
可以为现有事件日志或新的事件日志创建事件源。 为新事件日志创建新源时,系统会为该日志注册源,但在写入第一个条目之前不会创建日志。
若要安装事件日志,请创建继承自 Installer的项目安装程序类,并将类true
的 设置为 RunInstallerAttribute 。 在项目中,为应用程序将写入的每个事件日志创建 , EventLogInstaller 并将 实例添加到项目安装程序类。
调用 Installutil.exe (安装程序工具) 时,它将查看 RunInstallerAttribute。
true
如果是 ,该工具将安装集合中Installers与项目安装程序关联的所有项。 如果 RunInstallerAttribute 为 false
,则该工具将忽略项目安装程序。
在将 实例Installers添加到项目安装程序的EventLogInstaller集合之前或之后,在安装程序工具运行之前修改 的其他属性。 如果应用程序将写入事件日志,则必须设置 Source 属性。
使用 EventLogInstaller 为新的或现有的事件日志注册新源;请勿使用 EventLogInstaller 更改现有源。 类 EventLogInstaller 不会修改现有源的配置属性以匹配指定的安装属性。 如果 Source 属性与计算机上为其他事件日志注册的源名称匹配,则 Install 方法将引发异常。 Install如果 Source 属性与已为 属性中指定的相同事件日志注册的源名称匹配,则 方法不会注册源Log。
可以使用事件类别和消息字符串的本地化资源文件注册事件源。 应用程序可以使用资源标识符编写事件日志条目,而不是指定实际字符串。 事件查看器使用资源标识符根据当前语言设置查找并显示本地化资源文件中的相应字符串。 可以为事件类别、消息和参数插入字符串注册单独的文件,也可以为所有三种类型的字符串注册相同的资源文件。 CategoryCount使用 、CategoryResourceFile、 MessageResourceFile和 ParameterResourceFile 属性将源配置为将本地化条目写入事件日志。 如果应用程序将字符串值直接写入事件日志,则无需设置这些属性。
必须将源配置为用于写入本地化条目或编写直接字符串。 如果应用程序使用资源标识符和字符串值写入条目,则必须注册两个单独的源。 例如,使用资源文件配置一个源,然后在 方法中 WriteEvent 使用该源将使用资源标识符的条目写入事件日志。 创建不带资源文件的其他源,然后在 方法中 WriteEntry 使用该源将字符串直接写入使用该源的事件日志。
通常,你不会从代码中调用 类的方法 EventLogInstaller ;通常仅由 Installutil.exe 调用。 该工具在安装过程中自动调用 Install 方法。 如有必要,它会通过为生成异常的对象调用 Rollback 方法来回退失败。
构造函数
EventLogInstaller() |
初始化 EventLogInstaller 类的新实例。 |
属性
CanRaiseEvents |
获取一个指示组件是否可以引发事件的值。 (继承自 Component) |
CategoryCount |
获取或设置类别资源文件中类别的数目。 |
CategoryResourceFile |
获取或设置包含源的类别字符串的资源文件的路径。 |
Container |
获取包含 IContainer 的 Component。 (继承自 Component) |
Context |
获取或设置关于当前安装的信息。 (继承自 Installer) |
DesignMode |
获取一个值,用以指示 Component 当前是否处于设计模式。 (继承自 Component) |
Events |
获取附加到此 Component 的事件处理程序的列表。 (继承自 Component) |
HelpText |
获取安装程序集合中所有安装程序的帮助文字。 (继承自 Installer) |
Installers |
获取该安装程序包含的安装程序的集合。 (继承自 Installer) |
Log |
获取或设置要向其设置源的日志的名称。 |
MessageResourceFile |
获取或设置资源文件的路径,该文件包含源的消息格式字符串。 |
ParameterResourceFile |
获取或设置资源文件的路径,该文件包含源的消息参数字符串。 |
Parent |
获取或设置包含该安装程序所属的集合的安装程序。 (继承自 Installer) |
Site | (继承自 Component) |
Source |
获取或设置要在日志中注册的源名称。 |
UninstallAction |
获取或设置一个值,以指示 Installutil.exe(安装程序工具)在卸载时应删除事件日志还是保留其安装状态。 |
方法
事件
AfterInstall |
在 Installers 属性中的所有安装程序的 Install(IDictionary) 方法都运行后发生。 (继承自 Installer) |
AfterRollback |
在回滚 Installers 属性中所有安装程序的安装后发生。 (继承自 Installer) |
AfterUninstall |
在 Installers 属性中所有安装程序都执行它们的卸载操作后发生。 (继承自 Installer) |
BeforeInstall |
在安装程序集合中每个安装程序的 Install(IDictionary) 方法运行前发生。 (继承自 Installer) |
BeforeRollback |
在回滚 Installers 属性中的安装程序前发生。 (继承自 Installer) |
BeforeUninstall |
在 Installers 属性中的安装程序执行它们的卸载操作前发生。 (继承自 Installer) |
Committed |
在 Installers 属性中的所有安装程序均提交它们的安装后发生。 (继承自 Installer) |
Committing |
在 Installers 属性中的安装程序提交它们的安装前发生。 (继承自 Installer) |
Disposed |
在通过调用 Dispose() 方法释放组件时发生。 (继承自 Component) |