ASP.NET Tutorial/Development/Eventlog

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Catch exception and log it (C#)

   <source lang="csharp">

<%@ Page %> <script language="C#" runat="server">

 private void Page_Load(object sender, System.EventArgs e)
 {
   int a=0;
   System.Diagnostics.EventLog myEventLog;
   
   try {
     a=1/a;
   } catch (Exception ex) {  
     myEventLog=new System.Diagnostics.EventLog();
     myEventLog.Log="Application";
     myEventLog.Source="asp";
     myEventLog.WriteEntry(ex.ToString());
   }
 }

</script> <html>

 <body>
   <form id="form1" method="post" runat="server">
   </form>
 </body>

</html></source>


Catch exception and log it (VB)

   <source lang="csharp">

<%@ Page %> <script language="vb" runat="server">

 Sub Page_Load(sender As Object, e As EventArgs)
   Dim a as Integer=0
   Dim myEventLog as System.Diagnostics.EventLog
   
   Try
     a=1/a
   Catch ex as Exception
     myEventLog=new System.Diagnostics.EventLog()
     myEventLog.Log="Application"
     myEventLog.Source="asp"
     myEventLog.WriteEntry(ex.ToString())
   End Try
 End Sub

</script> <html>

 <body>
   <form id="form1" method="post" runat="server">
   </form>
 </body>

</html></source>


List all event log entries (C#)

   <source lang="csharp">

File: Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="EventReviewPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:Label ID="Label1" runat="server" Text="Event Log:"/>
       <asp:TextBox ID="txtLog" runat="server">your Name</asp:TextBox> 
       <asp:CheckBox ID="chkAll" runat="server" AutoPostBack="True" OnCheckedChanged="chkAll_CheckedChanged"
           Text="Get all entries for this log" />
<asp:Label ID="Label2" runat="server" Text="Source:"/> <asp:TextBox ID="txtSource" runat="server">DivideByZeroApp</asp:TextBox>

<asp:Button ID="cmdGet" runat="server" OnClick="cmdGet_Click" Text="Get Records" />

<asp:Panel ID="Panel1" runat="server" BorderStyle="Groove" BorderWidth="2px" Height="168px" ScrollBars="Vertical" Width="488px"> <asp:Label ID="lblResult" runat="server"></asp:Label></asp:Panel>
   </form>

</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Diagnostics; public partial class EventReviewPage : System.Web.UI.Page {

   protected void chkAll_CheckedChanged(object sender, EventArgs e)
   {
       if (chkAll.Checked)
       {
           txtSource.Text = "";
           txtSource.Enabled = false;
       }
       else
       {
           txtSource.Enabled = true;
       }
   }
   protected void cmdGet_Click(object sender, EventArgs e)
   {
       lblResult.Text = "";
       if (!EventLog.Exists(txtLog.Text))
       {
           lblResult.Text = "The event log " + txtLog.Text;
           lblResult.Text += " doesn"t exist.";
       }
       else
       {
           System.Text.StringBuilder sb = new System.Text.StringBuilder();
           EventLog log = new EventLog(txtLog.Text);
           foreach (EventLogEntry entry in log.Entries)
           {
               if (chkAll.Checked || entry.Source == txtSource.Text)
               {
                   sb.Append("Entry Type: ");
                   sb.Append(entry.EntryType.ToString());
                   sb.Append("
Message: "); sb.Append(entry.Message); sb.Append("
Time Generated: "); sb.Append(entry.TimeGenerated); sb.Append("

"); } } lblResult.Text = sb.ToString(); } }

}</source>


Write the exception information to the event log (C#)

   <source lang="csharp">

File: Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="ErrorTestLog" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:Label ID="Label1" runat="server" Text="A:"></asp:Label>
       <asp:TextBox ID="txtA" runat="server">5</asp:TextBox>
<asp:Label ID="Label2" runat="server" Text="B:"></asp:Label> <asp:TextBox ID="txtB" runat="server">0</asp:TextBox>

<asp:Button ID="cmdCompute" runat="server" OnClick="cmdCompute_Click" Text="Divide A / B" />


<asp:Label ID="lblResult" runat="server" Font-Bold="True" ForeColor="Red"></asp:Label>
   </form>

</body> </html>

File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Drawing; using System.Diagnostics; public partial class ErrorTestLog : System.Web.UI.Page {

   protected void cmdCompute_Click(object sender, EventArgs e)
   {
       try
       {
           decimal a, b, result;
           a = Decimal.Parse(txtA.Text);
           b = Decimal.Parse(txtB.Text);
           result = a / b;
           lblResult.Text = result.ToString();
           lblResult.ForeColor = Color.Black;
       }
       catch (Exception err)
       {
           lblResult.Text = "Message: " + err.Message + "

"; lblResult.Text += "Source: " + err.Source + "

"; lblResult.Text += "Stack Trace: " + err.StackTrace; lblResult.ForeColor = Color.Red; EventLog log = new EventLog(); log.Source = "DivisionPage"; log.WriteEntry(err.Message, EventLogEntryType.Error); } }

}</source>


Write the information to the event log. Register the event source if needed. (C#)

   <source lang="csharp">

File: Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="ErrorTestCustomLog" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Untitled Page</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:Label ID="Label1" runat="server" Text="A:"></asp:Label>
       <asp:TextBox ID="txtA" runat="server">5</asp:TextBox>
<asp:Label ID="Label2" runat="server" Text="B:"></asp:Label> <asp:TextBox ID="txtB" runat="server">0</asp:TextBox>

<asp:Button ID="cmdCompute" runat="server" OnClick="cmdCompute_Click" Text="Divide A / B" />


<asp:Label ID="lblResult" runat="server" Font-Bold="True" ForeColor="Red"></asp:Label>
   </form>

</body> </html>

File: Default.aspx.cs

using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Diagnostics; using System.Drawing; public partial class ErrorTestCustomLog : System.Web.UI.Page {

   protected void cmdCompute_Click(object sender, EventArgs e)
   {
       try
       {
           decimal a, b, result;
           a = Decimal.Parse(txtA.Text);
           b = Decimal.Parse(txtB.Text);
           result = a / b;
           lblResult.Text = result.ToString();
           lblResult.ForeColor = Color.Black;
       }
       catch (Exception err)
       {
           lblResult.Text = "Message: " + err.Message + "

"; lblResult.Text += "Source: " + err.Source + "

"; lblResult.Text += "Stack Trace: " + err.StackTrace; lblResult.ForeColor = Color.Red;
           if (!EventLog.SourceExists("DivideByZeroApp"))
           {
               EventLog.CreateEventSource("DivideByZeroApp", "ProseTech");
           }
           EventLog log = new EventLog("ProseTech");
           log.Source = "DivideByZeroApp";
           log.WriteEntry(err.Message, EventLogEntryType.Error);
       }
   }

}</source>