配置如下:
<?xml version="1.0" encoding="utf-8"?> <configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <appSettings> </appSettings> <log4net> <!--定义输出到文件中--> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <!--定义文件存放位置--> <file value="D:/log4netfile.txt" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <datePattern value="yyyyMMdd-HH:mm:ss" /> <layout type="log4net.Layout.PatternLayout"> <!--每条日志末尾的文字说明--> <footer value="by DMS" /> <!--输出格式--> <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> <conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" /> </layout> </appender> <!--定义输出到控制台命令行中--> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <!--定义输出到windows事件中--> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <!--定义输出到数据库中,这里举例输出到SQLSERVER数据库--> <appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender"> <bufferSize value="1" /> <connectionType value="System.Data.OleDb.OleDbConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <connectionString value="Provider=SQLOLEDB.1;Persist Security Info=True;User ID=xxx;Password=xxx;Initial Catalog=xxx;Data Source=xxx" /> <commandText value="INSERT INTO Log4Net([Date],[Thread],[logLevel],[Logger],[Message],[Exception]) VALUES (@log_date,@thread,@log_level,@logger,@message,@exception)" /> <!--定义各个参数--> <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" value="%thread"/> </parameter> <parameter> <parameterName value="@log_level"/> <dbType value="String"/> <size value="50"/> <layout type="log4net.Layout.PatternLayout" value="%level"/> </parameter> <parameter> <parameterName value="@logger"/> <dbType value="String"/> <size value="255"/> <layout type="log4net.Layout.PatternLayout" value="%logger"/> </parameter> <parameter> <parameterName value="@message"/> <dbType value="String"/> <size value="4000"/> <layout type="log4net.Layout.PatternLayout" value="%message"/> </parameter> <parameter> <parameterName value="@exception" /> <dbType value="String" /> <size value="2000" /> <layout type="log4net.Layout.ExceptionLayout" /> </parameter> </appender> <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。--> <root> <level value="ALL" /> <!--文件形式记录日志--> <appender-ref ref="LogFileAppender" /> <!--控制台控制显示日志--><!-- <appender-ref ref="ConsoleAppender" /> --><!--Windows事件日志--><!-- <appender-ref ref="EventLogAppender" />--> <!--输出到数据库 --> <!--<appender-ref ref="ADONetAppender" />--> </root> <logger name="DBEXECUTEERROR"> <level value ="ALL"/> <appender-ref ref="ADONetAppender" /> </logger> </log4net> </configuration>
写入文件是Ok的。。。
connectionString和connectionType匹配么?
匹配。原本不匹配 我专门 跟了 conn 拿的 type
我这边 .net 3.5的 引用 dll 1.0 的 但我换了 3.5还是没变化、、我现在是有点糊涂了。。
@gakki: 建议直接copy官方demo,修改连接就好。https://logging.apache.org/log4net/release/config-examples.html
@幻天芒: 搞定了 sql连接 ver 问题。。我这边是2.0.0.0.。。。疯掉了 分给你了。。。
@gakki: 我比较好奇,为什么连接sqlserver你用Oledb。
@幻天芒: 框架离这么搞的,框架不是我写的。我直接copy了连接。据说Oledb能够兼容多数据库。我反正是没觉得。。
@gakki: 有限的多种。
@幻天芒: 这个我也没办法,如果是我做,我更倾向分别 封 连接。用哪个调哪个 而不是这么一刀切。。。这个我感觉不靠谱。。。
@gakki: 是啊~换个数据库,就换个appender就行了。
@幻天芒: 有些东西不是俺能决定的。。。。
@gakki: 明白,哈哈~