EventLog.Log 属性

获取或设置读取或写入的日志名称。

**命名空间:**System.Diagnostics
**程序集:**System(在 system.dll 中)

语法

声明
Public Property Log As String
用法
Dim instance As EventLog
Dim value As String

value = instance.Log

instance.Log = value
public string Log { get; set; }
public:
property String^ Log {
    String^ get ();
    void set (String^ value);
}
/** @property */
public String get_Log ()

/** @property */
public void set_Log (String value)
public function get Log () : String

public function set Log (value : String)

属性值

日志的名称。这可以是 Application、System 和 Security,或一个自定义的日志名称。默认值为空字符串 ("")。

备注

默认情况下,服务器上存在三个日志文件: Application、System 和 Security。应用程序和服务使用 Application 日志文件。设备驱动程序使用 System 日志文件。打开审核时,系统在 Security 日志中生成成功审核事件和失败审核事件。如果安装了其他应用程序(如 Windows Server 上的 Active Directory),则可能会有其他默认日志文件。另外,还可以在本地计算机或远程计算机上创建自定义日志文件。与组件向默认的 Application 日志写入事件相比,自定义日志可以更详细地组织日志项。

提示

日志名称限于八位字符。根据系统的设定,MyLogSample1 和 MyLogSample2 是同一个日志。

如果写入事件日志,则仅指定 Log 属性是不够的。必须将 Source 属性与事件日志资源关联,才能将其连接到特定的日志。若仅从日志中读取,则不需要指定 Source,但必须使某个事件源与服务器注册表中的事件日志资源关联。只能指定 Log 名称和从中读取的 MachineName(服务器计算机名称)。

提示

连接到日志时不要求指定 MachineName。如果不指定 MachineName,则假定为本地计算机 (".")。

如果尚未指定 Source 属性,则未显式设置 Log(通过设置 Log 属性或通过构造函数)时,调用 Log 会返回一个空字符串。如果已经指定 Source,则 Log 返回源注册到的日志名称。

一个源一次只能注册到一个日志。如果为 EventLog 的实例设置了 Source 属性,若不事先更改 Source 的值或调用 DeleteEventSource,则无法更改此 EventLogLog 属性。如果在设置了 Source 属性后更改 Log 属性,则写入日志项将引发异常。

操作系统将事件日志存储为文件。使用 EventLogInstallerCreateEventSource 创建新的事件日志时,关联文件存储在指定计算机上的 %SystemRoot%\System32\Config 目录中。文件名是通过将“.evt”文件扩展名追加到 Log 属性的前八位字符后面进行设置的。

单独使用 Log 属性(没有为日志指定源)无法创建新日志。可以调用 CreateEventSource,将一个新日志名称作为参数传入然后调用 DeleteEventSource。但是,其目的通常是要么创建(并将项写入)新的应用程序特定的日志,要么从现有日志中读取。

如果 Log 值更改,则事件日志关闭并且所有事件句柄都被释放。

警告

如果将 Log 属性设置为一个不存在的日志名称,系统会将 EventLog 实例附加到 Application 日志,但不提醒您系统目前使用的不是您指定的日志。

示例

下面的示例读取本地计算机上事件日志“NewEventLog”中的项。

Imports System
Imports System.Diagnostics
Imports Microsoft.VisualBasic

Class MySample
    Public Shared Sub Main()
        Dim myNewLog As New EventLog()
        myNewLog.Log = "NewEventLog"
        Dim entry As EventLogEntry
        For Each entry In  myNewLog.Entries
            Console.WriteLine((ControlChars.Tab & "Entry: " & entry.Message))
        Next entry
    End Sub 'Main
End Class 'MySample
using System;
using System.Diagnostics;
              
class MySample{

    public static void Main(){

        EventLog myNewLog = new EventLog();
        myNewLog.Log = "NewEventLog";                      
        foreach(EventLogEntry entry in myNewLog.Entries){
            Console.WriteLine("\tEntry: " + entry.Message);
        }    
    }       
}
   
#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
int main()
{
   EventLog^ myNewLog = gcnew EventLog;
   myNewLog->Log = "NewEventLog";
   System::Collections::IEnumerator^ myEnum = myNewLog->Entries->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      EventLogEntry^ entry = safe_cast<EventLogEntry^>(myEnum->Current);
      Console::WriteLine( "\tEntry: {0}", entry->Message );
   }
}
import System.*;
import System.Diagnostics.*;
import System.Collections.*;

class MySample
{
    public static void main(String[] args)
    {
        EventLog myNewLog = new EventLog();
        myNewLog.set_Log("NewEventLog");       
        EventLogEntry entry;
        IEnumerator objEnum = myNewLog.get_Entries().GetEnumerator();
        while (objEnum.MoveNext()) {
            entry = (EventLogEntry)objEnum.get_Current();
            Console.WriteLine("\tEntry: " + entry.get_Message());
        }
    } //main
} //MySample

.NET Framework 安全性

平台

Windows 98、Windows 2000 SP4、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

EventLog 类
EventLog 成员
System.Diagnostics 命名空间
MachineName
Source
EventLog.Entries 属性
Exists
Delete
CreateEventSource
EventLogEntryCollection