log4net无法写入数据库,求指点

迪尔盖茨 2017-01-17 03:37:35
最近想做个记录日志的小功能,就自己照着网上的资料配置了个Web应用程序。可是测试的时候怎么也写不到SQLServer数据库中。数据库连接都没有问题,commandText里面的参数改成固定的字符串(当然还要把下面所有的parameter标签注释掉)能写进去,可是一旦换成参数表示形式就不走了。看了好几天都没看出来是哪里的问题,基本试过了网上所有的解决建议都没用,要崩溃了啊有木有。。。。。。。。。。求各位指点下,不胜感激!!
下面是log4net.config的配置文件,写入文件的都可以,只有数据库走不通。SQLServer 2008,.NET 3.5,log4net 2.0.7

<?xml version="1.0" encoding="utf-8"?>
<configuration>

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<log4net>
<!-- 定义不同级别的日志记录器 -->
<logger name="loginfo">
<level value="INFO" />
<appender-ref ref="LogInfoAppender" />
<appender-ref ref="AdoNetAppender" />
</logger>

<logger name="logerror">
<level value="ERROR" />
<appender-ref ref="LogErrorAppender" />
<appender-ref ref="AdoNetAppender" />
</logger>

<logger name="logdebug">
<appender-ref ref="AdoNetAppender" />
<level value="DEBUG" />
<appender-ref ref="LogDebugAppender" />

</logger>


<!--定义到日志保存到sqlserver中-->
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="database=xxx;server=xxx;UID=xxx;PWD=xxx;Connect Timeout=1500;" />
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
<!--测试数据库连接的,这样能正常插入数据 getdate(),'this is thead-id','this is log level','this is logger','this is log message','this is execption'-->
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender>


<!-- 输出到错误信息文件 -->
<appender name="LogErrorAppender" type="log4net.Appender.FileAppender">
<param name="File" value="error.txt" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<!--备份日志数目-->
<param name="MaxFileSize" value="10240" />
<!--日志文件大小10M-->
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy-MM-dd HH:mm:ss" />
<param name="RollingStyle" value="Date" />
<!--创建新文件的方式,Date表示按日期创建,Size是按文件大小,etc-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n异常时间:%d%n异常级别:%-5p%n异常内容:%m%n" />
</layout>
</appender>


<!-- 输出到调试信息文件 -->
<appender name="LogDebugAppender" type="log4net.Appender.FileAppender">
<param name="File" value="debug.txt" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<!--备份日志数目-->
<param name="MaxFileSize" value="10240" />
<!--日志文件大小10M-->
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy-MM-dd HH:mm:ss" />
<param name="RollingStyle" value="Date" />
<!--创建新文件的方式,Date表示按日期创建,Size是按文件大小,etc-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n调试时间:%d%n调试内容:%m%n" />
</layout>
</appender>


<!-- 输出到一般信息文件 -->
<appender name="LogInfoAppender" type="log4net.Appender.FileAppender">
<param name="File" value="info.txt" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<!--备份日志数目-->
<param name="MaxFileSize" value="10240" />
<!--日志文件大小10M-->
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyy-MM-dd HH:mm:ss" />
<param name="RollingStyle" value="Date" />
<!--创建新文件的方式,Date表示按日期创建,Size是按文件大小,etc-->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%n调试时间:%d%n输出内容:%m%n" />
</layout>
</appender>
<!--定义日志输出媒介,指定通过何种方式储存日志信息。-->
<root>

</root>

</log4net>

</configuration>



看着有啥建议都可以一起交流,谢谢大家!!
...全文
493 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ystemni 2017-01-18
  • 打赏
  • 举报
回复
<parameterName value="log_date" />
changuncle 2017-01-18
  • 打赏
  • 举报
回复
我正好用过log4net这个组件,并做了记录。下面是我做的记录,绝对亲测有效; http://blog.csdn.net/xiaouncle/article/details/52348472和 http://blog.csdn.net/xiaouncle/article/details/52327324,希望对你有帮助。
迪尔盖茨 2017-01-18
  • 打赏
  • 举报
回复
引用 4 楼 ystemni 的回复:
<parameterName value="log_date" />
额,这样好像更不对吧。。。
迪尔盖茨 2017-01-17
  • 打赏
  • 举报
回复
第一次发帖,顶住。。。。
迪尔盖茨 2017-01-17
  • 打赏
  • 举报
回复
错误截图
迪尔盖茨 2017-01-17
  • 打赏
  • 举报
回复
调试提示找不到参数@log_date、@thread 等等。实在想不通哪里出问题了

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧