Language: C#
SqlAppender
1: public class SqlAppender : AppenderSkeleton 2: { 3: private static readonly string CommandText = "INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"; 4: 5: public string ConnectionString { get; set; } 6: 7: protected override void Append(LoggingEvent loggingEvent) 8: { 9: using (var conn = new SqlConnection(ConnectionString)) 10: using (var cmd = new SqlCommand(CommandText, conn)) 11: { 12: cmd.CommandType = CommandType.Text; 13: 14: cmd.Parameters.Add(AddParameter("@log_date", SqlDbType.DateTime, 0, ParameterDirection.Input, false, loggingEvent.TimeStamp)); 15: cmd.Parameters.Add(AddParameter("@thread", SqlDbType.VarChar, 255, ParameterDirection.Input, false, loggingEvent.ThreadName)); 16: cmd.Parameters.Add(AddParameter("@log_level", SqlDbType.VarChar, 50, ParameterDirection.Input, false, loggingEvent.Level.Name)); 17: cmd.Parameters.Add(AddParameter("@logger", SqlDbType.VarChar, 255, ParameterDirection.Input, false, loggingEvent.LoggerName)); 18: cmd.Parameters.Add(AddParameter("@message", SqlDbType.VarChar, 4000, ParameterDirection.Input, false, loggingEvent.RenderedMessage)); 19: cmd.Parameters.Add(AddParameter("@exception", SqlDbType.VarChar, 2000, ParameterDirection.Input, true, loggingEvent.GetExceptionString())); 20: 21: conn.Open(); 22: cmd.ExecuteNonQuery(); 23: } 24: } 25: 26: private SqlParameter AddParameter(string name, SqlDbType dbType, int size, ParameterDirection direction, bool isNullable, object value) 27: { 28: return new SqlParameter( 29: name, 30: dbType, 31: size, 32: direction, 33: isNullable, 34: 0, 35: 0, 36: string.Empty, 37: DataRowVersion.Default, 38: value 39: ); 40: } 41: }
Tags:
Description:
An Appender for log4net that obeys TransactionScopeOption.Suppress.
Report Abuse
Subscribe
Discuss
What's new
What is it
New Snippet
Recent Snippets
My Snippets
Web Code
Search

