<%@ Page Language="vb" debug="false" trace="false" %>
<%@ Import Namespace="System.Diagnostics" %>
<script runat="server">
Sub Page_Load(sender As object, e As EventArgs)
Try
If Not IsPostBack Then
BindEvents()
End If
Catch ex as Exception
Trace.Write("Page_Load","",ex)
Response.Write("There were errors in the processing of your request.")
End Try
End Sub
Sub BindEvents()
Dim I As Integer
'Get an array with all of the event logs on the server
Dim elArray As EventLog() = EventLog.GetEventLogs(".")
'Populate the SELECT box with the different event logs
logs.DataSource = elArray
logs.DataTextField = "Log"
logs.DataValueField = "Log"
logs.DataBind()
I = 0
Do While I < logs.Items.Count
Try
logs.Items(I).Text += " (" & elArray(I).Entries.Count & " rows)"
Catch e As Exception
' do not display the restricted logfiles
Trace.Write("BindEvents","Cannot Access " & logs.Items(I).Text & "(" & I & ")")
Trace.Write("BindEvents","",e)
logs.Items.Remove(logs.Items(I))
I = I - 1
End Try
I += 1
Loop
End Sub
Sub getMessages_Click(sender As object, e As EventArgs)
GetLogEntries()
End Sub
Sub clearLog_Click(sender As object, e As EventArgs)
Response.Write("Clear is disabled for this demo.")
Return
'Here is the code to do a Clear:
Dim el As EventLog = new EventLog()
el.MachineName = "."
el.Log = logs.SelectedItem.Value.ToString()
el.Clear()
el.Close()
BindEvents()
GetLogEntries()
End Sub
Sub GetLogEntries()
Dim el As EventLog = new EventLog()
el.MachineName="."
el.Log = logs.SelectedItem.Value.ToString()
Dim alEvents As System.Collections.ArrayList = new System.Collections.ArrayList(el.Entries)
alEvents.Reverse()
messages.DataSource = alEvents
messages.DataBind()
el.Close()
End Sub
Function GetEventTypeDesc(elet As EventLogEntryType) As String
Return elet.ToString()
End Function
</script>
<html>
<head>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
</head>
<body>
<form method="post" runat="server">
<table border="1" cellpadding="0" cellspacing="0" style="font-size:12px;">
<tr bgcolor="#CCCCFF">
<th>
Event Log
</th>
<th>
Action
</th>
</tr>
<tr>
<td>
<asp:DropDownList id="logs" runat="server">
</asp:DropDownList>
</td>
<td>
<asp:button id="getMessages" text="Get Events" onclick="getMessages_Click" runat="Server">
</asp:button>
<asp:button id="clearLog" text="Clear Events" onclick="clearLog_Click" runat="Server">
</asp:button>
</td>
</tr>
</table>
</form>
<asp:repeater id="messages" runat="Server">
<HeaderTemplate>
<table cellspacing="0" cellpadding="2" border="1" bgcolor="#FFFFFF" style="font-size:12px;">
<TBODY>
<tr bgcolor="#CCCCFF">
<th>
Type
</th>
<th>
Date/Time
</th>
<th>
Source
</th>
<th>
Category
</th>
<th>
Event
</th>
<th>
User
</th>
<th>
Computer
</th>
<th>
Message
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<%#GetEventTypeDesc(CType(Container.DataItem,EventLogEntry).EntryType)%></td>
<td>
<%#CType(Container.DataItem,EventLogEntry).TimeGenerated%></td>
<td>
<%#CType(Container.DataItem,EventLogEntry).Source%></td>
<td>
<%#CType(Container.DataItem,EventLogEntry).Category%></td>
<td>
<%#CType(Container.DataItem,EventLogEntry).EventID%></td>
<td>
<%#CType(Container.DataItem,EventLogEntry).UserName + " "%></td>
<td>
<%#CType(Container.DataItem,EventLogEntry).MachineName%></td>
<td>
<%#CType(Container.DataItem,EventLogEntry).Message%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</TBODY>
</TABLE>
</FooterTemplate>
</asp:repeater>
</body>
</html>