症状:
1.使用log4net能成功的配置为写入日志到文件以及windows的事件记录
2.不能写入access或者MsSql在google上面搜索了很多关于log4net的文章,像摩诘Log4Net使用指南,apache的log4net专栏,按照里面的配置一步步来遇到了问题,很容易配置成可以写入日志到文件(FileAppender),windows事件日志(EventLogAppender)里面配置成Access或者MsSql就这么写不进去,我的配置文件如下 <configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
<connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\log\\appLog.mdb;Persist Security Info=False" />
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date" />
</layout>
</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="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>--> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender> <logger name="myLoger"> <level value="ALL"/> </logger> <root>
<level value="ALL" />
<appender-ref ref="AdoNetAppender_Access" />
</root> </log4net>我的access放在D盘的log目录下面,名称为appLog请大虾们帮忙解答
1.使用log4net能成功的配置为写入日志到文件以及windows的事件记录
2.不能写入access或者MsSql在google上面搜索了很多关于log4net的文章,像摩诘Log4Net使用指南,apache的log4net专栏,按照里面的配置一步步来遇到了问题,很容易配置成可以写入日志到文件(FileAppender),windows事件日志(EventLogAppender)里面配置成Access或者MsSql就这么写不进去,我的配置文件如下 <configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
<connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\log\\appLog.mdb;Persist Security Info=False" />
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date" />
</layout>
</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="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
</appender>--> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender> <logger name="myLoger"> <level value="ALL"/> </logger> <root>
<level value="ALL" />
<appender-ref ref="AdoNetAppender_Access" />
</root> </log4net>我的access放在D盘的log目录下面,名称为appLog请大虾们帮忙解答
http://www.cnblogs.com/agtaimaer/archive/2008/11/15/log4net.html
http://www.cnblogs.com/liwei6797/archive/2007/04/27/729679.html
有没有异常啊?MSSQL试过吗?
MsSql刚刚搞通了,我觉得问题可能出在连接字符串上面
但是我把D:\\log\\appLog.mdb换成D:\log\appLog.mdb也不行
没有异常,之前MsSql没插入数据进去,也没异常,好像log4net一般不会抛异常出来
你可以看看连接语句 尤其时注意version 和 PublicKeyToken
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
自己的VB在版本上会有自己的不同。我也是一个一个总webconfig中所有出现的version中找出来的。
尤其要注意的是webconfig中
<compilers>
</compiler>
之间的version.
你确定你的
<connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\log\\appLog.mdb;Persist Security Info=False".....
和你vb中右键你Server Explorer 中数据库连接 所示的 连接语句一样吗??
你可以对VB中所示你的数据库连接右键查看属性。