代码配置 Log4Net 的 AdoNetAppender
今天发现 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(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架