zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

使用log4net无法将日志记录插入mysql数据库解决办法

mysql数据库日志 记录 无法 解决办法 插入 Log4net
2023-09-14 09:01:01 时间

今天没事研究了下,将日志文件写入mysql数据库,因为新公司用的数据库也是mysql,项目中需要将日志信息写入数据库,没办法,就研究了下。在使用过程中遇到一个很蛋疼的问题。最后解决了,郁闷了半天。这里做一下记录,以免再犯。

之前写个这方面的文章,关于配置信息,可参考我的这篇文章:Log4Net日志记录两种方式

问题就出在我直接将log4net写入数据库的配置文件log4net.config直接复制过来在项目中使用了,当然是修改了连接字符串,提供程序等与mysql相关的配置。配置文件如下:

复制代码
 ?xml version="1.0" encoding="utf-8"? 

 configuration 

 configSections 

 section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" / 

 /configSections 

 !--Log4net Begin-- 

 log4net 

 appender name="AdoNetAppender_MySql" type="log4net.Appender.ADONetAppender" 

 bufferSize value="1" / 

 connectionType value="MySql.Data.MySqlClient.MySqlConnection, MySql.Data" / 

 connectionString value="server=127.0.0.1;user id=root;pwd=root;port=3306;pooling=True;database=cowork_db" providerName="MySql.Data.MySqlClient;" / 

 commandText value="INSERT INTO coworkdocument_log (log_date,log_Thread,log_Level,log_Logger,log_Message,log_Exception) VALUES (@log_date, @log_Thread, @log_level, @log_Logger, @log_Message, @log_Exception)" / 

 parameter 

 parameterName value="@log_date" / 

 dbType value="DateTime" / 

 layout type="log4net.Layout.RawTimeStampLayout" / 

 /parameter 

 parameter 

 parameterName value="@log_Thread" / 

 dbType value="String" / 

 size value="100" / 

 layout type="log4net.Layout.PatternLayout" 

 conversionPattern value="%thread" / 

 /layout 

 /parameter 

 parameter 

 parameterName value="@log_Level" / 

 dbType value="String" / 

 size value="100" / 

 layout type="log4net.Layout.PatternLayout" 

 conversionPattern value="%level" / 

 /layout 

 /parameter 

 parameter 

 parameterName value="@log_Logger" / 

 dbType value="String" / 

 size value="100" / 

 layout type="log4net.Layout.PatternLayout" 

 conversionPattern value="%logger" / 

 /layout 

 /parameter 

 parameter 

 parameterName value="@log_Message" / 

 dbType value="String" / 

 size value="1000" / 

 layout type="log4net.Layout.PatternLayout" 

 conversionPattern value="%message" / 

 /layout 

 /parameter 

 parameter 

 parameterName value="@log_Exception" / 

 dbType value="String" / 

 size value="4000" / 

 layout type="log4net.Layout.ExceptionLayout" / 

 /parameter 

 /appender 

 !-- setup the root category, add the appenders and set the default level -- 

 root 

 level value="ALL"/ 

 appender-ref ref="AdoNetAppender_MySql"/ 

 /root 

 /log4net 

 !--Log4net End-- 

 /configuration 
复制代码

弄了很长时间,也不知道问题在哪儿,就是插不进数据,无语死了,最后,灵光一闪,将sql语句修改如下:

1 INSERT INTO coworkdocument_log (log_date,log_Thread,log_Level,log_Logger,log_Message,log_Exception) VALUES (@log_date, @log_Thread, @log_level, @log_Logger, @log_Message, @log_Exception)

与上篇文章的sqlserver的配置文件对比你会发现,我将字段的[]去掉了,估计是mysql不支持这种语法吧,去掉之后,问题得以解决,能不郁闷吗?


博客版权: 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。http://www.cnblogs.com/wolf-sun/p/4438286.html
数据库编程 MySQL 常见异常和解决办法 mysqlslap 可以用于模拟服务器的负载,并输出计时信息。测试时,可以指定并发连接数,可以指定 SQL 语句。如果没有指定 SQL 语句,mysqlslap 会自动生成查询 schema 的 SELECT 语句。但是可能会报错
连接远程mysql数据库失败常见原因及解决办法 1. 没有开启 MySQL 的远程登陆帐号。 1.找到mysql数据库的user表。在user表中新建一条数据,设置User(username)和Host(开放访问MySQL的IP:例如123.118.17.201)以及登录密码。这样就设置了允许访问的用户名和IP地址(若想所有IP都可以访问,则可将Host设置为‘%’,但是这样很危险,不建议)。