using
System;
using
System.Collections.Generic;
using
System.Configuration;
//add namespace
using
System.Data;
//add namespace
using
System.Data.SqlClient;
//add namespace
using
System.Linq;
using
System.Text;
//add namespace
using
System.Threading.Tasks;
namespace
ConsoleApplication1
{
class Program
{
static void
Main(
string[] args)
{
try
{
// throw exception intentionally
throw new DivideByZeroException();
}
catch (Exception ex)
{
LogError(ex);
}
}
public static void
LogError(
Exception exception)
{
string
conString =
@"Data Source=.\;Initial Catalog=Demo;User
ID=id;Password=pwd"
;
SqlConnection
con
=
null;
try
{
StringBuilder
sbExceptionMessage =
new StringBuilder();
do
{
sbExceptionMessage.Append(
"Exception
Type"
+ Environment.NewLine);
sbExceptionMessage.Append(exception.GetType().Name);
sbExceptionMessage.Append(Environment
.NewLine
+
Environment.NewLine);
sbExceptionMessage.Append("Message" + Environment.NewLine);
sbExceptionMessage.Append(exception.Message +
Environment
.NewLine
+
Environment.NewLine);
sbExceptionMessage.Append(
"Stack
Trace"
+ Environment.NewLine);
sbExceptionMessage.Append(exception.StackTrace +
Environment
.NewLine
+
Environment.NewLine);
exception = exception.InnerException;
}
while
(exception !=
null);
con = new SqlConnection(conString);
SqlCommand
cmd
=
new SqlCommand("usp_ErrorLog"
,
con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter
parameter =
new SqlParameter("@ExceptionMessage"
,
sbExceptionMessage.ToString());
cmd.Parameters.Add(parameter);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
catch (Exception ex)
{
}
finally
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
}
}
}