代码配置 Log4Net 的 AdoNetAppender

本文分享了使用Log4Net向SqlServer及MySql数据库输出日志的具体配置方法,包括不同数据库下的commandtext语法差异、连接字符串构造方式等。

今天发现 Log4Net 输出到不同数据库时,其 commandtext 使用的语法居然也不同,摸索了好一会,分享一下:

 

        // SqlServer
        //
        private const string SqlServerLog4NetCommandText = "INSERT INTO pacs_log ([Datetime],[ThreadID],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"; 
        private const string SqlServerConnectionType = "System.Data.SqlClient.SqlConnection, System.Data, version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
        private static string SqlServerConnectionString(string dbHost, string dbName, string dbUser, string dbPwd)
        {
            var sb = new StringBuilder();
            sb.AppendFormat("data source={0}", dbHost);
            sb.AppendFormat(";initial catalog={0}", dbName);
            sb.AppendFormat(";User ID={0};Password={1}", dbUser, dbPwd);
            sb.Append(";integrated security=false;persist security info=True;");
            return sb.ToString();
        }

        // MySql
        //
        private const string MySqlLog4NetCommandText = "INSERT INTO pacs_log (Datetime,ThreadID,Level,Logger,Message,Exception) VALUES (?log_date, ?thread, ?log_level, ?logger, ?message, ?exception)"; 
        private const string MySqlConnectionType = "MySql.Data.MySqlClient.MySqlConnection, MySql.Data, Version=6.4.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d";
        private static string MySqlConnectionString(string dbHost, string dbName, string dbUser, string dbPwd)
        {
            var sb = new StringBuilder();
            sb.AppendFormat("data source={0}", dbHost);
            sb.AppendFormat(";initial catalog={0}", dbName);
            sb.AppendFormat(";User ID={0};Password={1};persist security info=True;", dbUser, dbPwd);
            return sb.ToString();
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值