使用log4net无法将日志记录插入mysql数据库解决办法
2023-09-14 09:01:01 时间
今天没事研究了下,将日志文件写入mysql数据库,因为新公司用的数据库也是mysql,项目中需要将日志信息写入数据库,没办法,就研究了下。在使用过程中遇到一个很蛋疼的问题。最后解决了,郁闷了半天。这里做一下记录,以免再犯。
之前写个这方面的文章,关于配置信息,可参考我的这篇文章:Log4Net日志记录两种方式
问题就出在我直接将log4net写入数据库的配置文件log4net.config直接复制过来在项目中使用了,当然是修改了连接字符串,提供程序等与mysql相关的配置。配置文件如下:
![复制代码](http://common.cnblogs.com/images/copycode.gif)
?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
![复制代码](http://common.cnblogs.com/images/copycode.gif)
弄了很长时间,也不知道问题在哪儿,就是插不进数据,无语死了,最后,灵光一闪,将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设置为‘%’,但是这样很危险,不建议)。
相关文章
- MySQL中删除唯一索引的步骤(删除唯一索引mysql)
- 启动MySQL数据库的步骤指南(怎么启动mysql数据库)
- MySQL查询:易如反掌(易语言mysql查询)
- 记录MySQL 数据库查询:一步一步演示!(怎么获取mysql数据库)
- MySQL数据库与关系模型的精妙结合(mysql数据库关系)
- MySQL 字段占用空间优化实践(mysql字段占用空间)
- MySQL驱动源码研究及实践(mysql驱动源码)
- 连接MySQL远程数据库的利器(远程连接mysql的工具)
- 化界面使用MySQL图形化界面突破数据库管理难关(mysql图形)
- MySQL数据库时间的加减运算实战(mysql数据库时间加减)
- MySQL数据库及其应用实践(mysql数据库应用实例)
- MySQL远程连接慢:解决措施(mysql远程连接慢)
- 实践|MySQL数据库:25个应用案例展示(mysql数据库应用案例)
- 教你轻松实现:MySQL数据库添加单条数据记录操作技巧(mysql增加一条记录)
- MySQL数据限制上限探析:25个字符限制提高哪项关键功能?(mysql上限)
- 实现远程命令行连接Mysql数据库(远程命令行登录mysql)
- MySQL数据库中使用主键建表的基本语句(mysql建表语句主键)
- 一步步学习:MySQL数据库设置密码(设置mysql数据库密码)
- MySQL数据库解析事件概念及其作用(mysql中什么是事件)
- MySQL中Redo日志 数据恢复的利器(mysql中redo日志)
- MySQL中建立数据表的简易方法(c mysql建立表格)
- 命令行下MySQL数据库管理(cmd 驱动mysql)
- 库ASP实现MySQL数据库的轻松访问(asp读取mysql数据)
- 使用CMD和MySQL实现编码功能(cmd mysql 编码)
- MySQL安装卡死解决方案,让你的数据库正常运行(mysql一安装就卡死了)
- MySQL数据库不包含自身,常被用于管理与存储数据,特别适用于Web应用程序(mysql不包含自己)
- MySQL无法导入中文版数据库(mysql不能导入中文版)
- MySQL数据库中的不等于符号和地址符号的区别(mysql不等于地址)