log4net 写不进数据库
问题:log4net 写不进SQL数据库配置文件如下:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net debug="false">
<root>
<level value="ALL"/>
<appender-ref ref="ADONetAppender"/>
</root>
<logger name="AA">
<level value="ALL"/>
<appender-ref ref="ADONetAppender"/>
</logger>
<appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="2"/>
<connectionType value="System.Data.SqlClient.SqlConnection,System.Data, Version=1.0.3300.0, Culture=neutral,PublicKeyToken=b77a5c561934e089"/>
<connectionString value="database=xxx;server=xxx;UserID=xxx;Password=xxx"/>
<commandText value="INSERT INTO LOG([DATE],[THREAD],[LEVEL],[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">
<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>
</log4net>
不知道为什么一直都写不进数据库,望大家指点一下,谢谢!!! --------------------编程问答-------------------- 对这个东西不懂。不过我这边有个log4net.webconfig的代码。
我把代码考出来,能帮上就最好。
<?xml version="1.0" encoding="utf-8" ?>--------------------编程问答-------------------- 如果真是config配置有问题的话,使用如下
<log4net debug="false">
<!--
<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
<file value="Data/mojoportal-log.config" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{url}] - %message%newline" />
</layout>
</appender>
<appender name="HttpTraceAppender" type="log4net.Appender.AspNetTraceAppender" >
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{url}] - %message%newline" />
</layout>
</appender>
-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Data/currentlog.config" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<encoding value="utf-8" />
<maxSizeRollBackups value="3" />
<maximumFileSize value="800KB" />
<rollingStyle value="Size" />
<staticLogFileName value="true" />
<!--
<layout type="log4net.Layout.SimpleLayout" />
-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level %logger - %message %newline" />
</layout>
</appender>
<root>
<level value="INFO" />
<!--
ALL
DEBUG
INFO
WARN
ERROR
FATAL
OFF
-->
<appender-ref ref="RollingLogFileAppender" />
<!--
<appender-ref ref="HttpTraceAppender" />
<appender-ref ref="RollingLogFileAppender" />
<appender-ref ref="LogFileAppender" />
-->
</root>
<!--
[SQL]
CREATE TABLE [dbo].[Log] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[Date] [datetime] NOT NULL ,
[Thread] [varchar] (255) NOT NULL ,
[Level] [varchar] (20) NOT NULL ,
[Logger] [varchar] (255) NOT NULL ,
[Message] [varchar] (4000) NOT NULL
) ON [PRIMARY]
<appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="data source=SQLSVR;initial catalog=test_log4net;integrated security=false;persist security info=True;User ID=sa;Password=sa" />
<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="DateTime" />
<layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
</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>
</appender>
-->
<!--
http://logging.apache.org/log4net/release/config-examples.html
Documentation for smtp appender:
http://logging.apache.org/log4net/release/sdk/log4net.Appender.SmtpAppender.html
The following example shows how to configure the SmtpAppender to deliver log events via SMTP email.
The To, From, Subject and SmtpHost are required parameters. This example shows how to deliver only significant events.
A LevelEvaluator is specified with a threshold of WARN. This means that an email will be sent for each WARN or higher
level message that is logged. Each email will also contain up to 512 (BufferSize) previous messages of any level to provide
context. Messages not sent will be discarded.
-->
<!--
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="to@domain.com" />
<from value="from@domain.com" />
<subject value="test logging message" />
<Username value="" />
<Password value="" />
<smtpHost value="SMTPServer.domain.com" />
<Port value="" />
<bufferSize value="512" />
<lossy value="true" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="WARN"/>
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
</layout>
</appender>
-->
<!--
This example shows how to configure the SmtpAppender to deliver all messages in emails
with 512 (BufferSize) messages per email.
-->
<!--
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
<to value="to@domain.com" />
<from value="from@domain.com" />
<subject value="test logging message" />
<smtpHost value="SMTPServer.domain.com" />
<bufferSize value="512" />
<lossy value="false" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline%newline%newline" />
</layout>
</appender>
-->
<!--
This example shows a more verbose formatting layout for the mail messages.
-->
<!--
<appender name="SmtpAppender" type="log4net.Appender.SmtpAppender,log4net">
<to value="to@domain.com" />
<from value="from@domain.com" />
<subject value="test logging message" />
<smtpHost value="SMTPServer.domain.com" />
<bufferSize value="512" />
<lossy value="false" />
<evaluator type="log4net.Core.LevelEvaluator,log4net">
<threshold value="WARN" />
</evaluator>
<layout type="log4net.Layout.PatternLayout,log4net">
<conversionPattern value="%property{log4net:HostName} :: %level :: %message %newlineLogger: %logger%newlineThread: %thread%newlineDate: %date%newlineNDC: %property{NDC}%newline%newline" />
</layout>
</appender>
-->
</log4net>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<logger name="LogSystem">
<level value="ALL"/>
<appender-ref ref="AdoNetAppender_SqlServer" />
</logger>
<!--记录到sqlserver数据库方式-->
<appender name="AdoNetAppender_SqlServer" 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="data source=xxx;initial catalog=xxx;integrated security=false;persist security info=True;User ID=xxx;Password=xxx"/>
<commandText value="INSERT INTO SysLog ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)"/>
<parameter>
<parameterName value="@log_date"/>
<dbType value="DateTime"/>
<layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}"/>
</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>
</appender>
</log4net>
</configuration>
补充:.NET技术 , ASP.NET