This article transferred from: http://www.cnblogs.com/PatrickLiu/p/6012153.html
recently in a project, need to add a log function, need to use log4net log, data inserted into the Oracle database, after a long time the study finally succeeded. Record the method for future enquiries. Direct write implementation method, in two steps to complete:1, use the NuGet Manager management tool to add a reference to Oracle.ManagedDataAccess.dll. 2, configure the specific file. <?xml version="1.0"?><configuration> <configSections> <section name="log4net"Type="log4net. Config.log4netconfigurationsectionhandler, Log4net"/> </configSections> <appSettings> <add key="log4net. Internal.debug"Value="true"/> </appSettings> <log4net> <!--script to generate Data create TABLE T_loghistory (ID number notNULL, Log_date date notNULL, Log_thread VARCHAR2 ( -) notNULL, Log_level VARCHAR2 ( -) notNULL, Log_logger VARCHAR2 ( Max) notNULL, Log_operator VARCHAR2 ( -) notNULL, Log_message VARCHAR2 ( -) notNULL, Log_ip VARCHAR2 ( -) notNULL, Log_machinename VARCHAR2 ( -) notNULL, Log_browser VARCHAR2 ( -) notNULL, Log_location VARCHAR2 ( -) notNULL, Log_exception VARCHAR2 ( the) notNULL, constraint Pk_loghistory primary key (ID)); Create Sequence seq_loghistory_id MinValue1MaxValue9999999999999999999999999999start with1Increment by1NoCache; -<appender Name="Adonetappender"Type="log4net. Appender.adonetappender,log4net"> <!--buffersize is the buffer size, only the logging Hyper-SetPoint is written to the database--<buffersize value="1"/> <!--or written as <param name="buffersize"Value="Ten"/>--> <!--Citation--<!--<connectiontype value="System.Data.OracleClient.OracleConnection, System.Data.OracleClient, version=4.0.0.0, Culture=neutral, publickeytoken=b77a5c561934e089"/>--> <connectiontype value="Oracle.ManagedDataAccess.Client.OracleConnection, Oracle.manageddataaccess, version=4.121.2.0, culture= Neutral, publickeytoken=89b483f429c47342"/> <!--Connection Database string--<connectionstring value="Data source= (description= (address= (protocol=tcp) (host=127.0.0.1) (port=80)) (Connect_data= (service_name= (DatabaseName))); User id=*******; password=*******;"/> <!--inserting into table log--> <commandtext value="INSERT into t_loghistory (ID, log_date, log_thread, Log_level, Log_logger, Log_operator, Log_message, Log_ip, Log_ MachineName, Log_browser, Log_location, log_exception) VALUES (Seq_loghistory_id.nextval,: logdate,: Thread,: Log_ Level,: Logger,: operator,: message,: ClientIP,: MachineName,: Browser,: Location,: Exception)"/> <!--logging time, rawtimestamplayout as the default time output format-<parameter> <parametername value=": Logdate"/> <dbtype value="DateTime"/> <layout type="log4net. Layout.rawtimestamplayout"/> </parameter> <!--thread number--<parameter> <parametername value=": Thread"/> <dbtype value="String"/> <!--length can not be omitted, otherwise it will not output--<size value=" -"/> <layout type="log4net. Layout.patternlayout"> <conversionpattern value="%thread"/> </layout> </parameter> <!--log Levels--<parameter> <parameternam E value=": Log_level"/> <dbtype value="String"/> <size value=" -"/> <layout type="log4net. Layout.patternlayout"> <conversionpattern value="%level"/> </layout> </parameter> <!--log record class name--<parameter> <parameter Name value=": Logger"/> <dbtype value="String"/> <size value=" $"/> <layout type="log4net. Layout.patternlayout"> <conversionpattern value="%logger"/> </layout> </parameter> <!--operators. This is a custom output field, using the re-implemented layout reflectionlayout--> <parameter> <parametername value=": operator"/> <!--is set to Int32 only buffersize value<="1"The correct output, not to find out why. -<dbtype value="String"/> <size value=" $"/> <layout type="log4net. Layout.patternlayout"> <conversionpattern value="%username"/> </layout> </parameter> <!--IP address--<parameter> <parameternam E value=": ClientIP"/> <dbtype value="String"/> <size value=" -"/> <layout type="Enterprise.framework.logger.extensions.clientiplayout,enterprise.framework.logger"> <conversionpattern value="%clientip"/> </layout> </parameter> <!--machine name--<parameter> <parametername Value=": MachineName"/> <dbtype value="String"/> <size value=" -"/> <layout type="log4net. Layout.patternlayout"> <conversionpattern value="%property{log4net:hostname}"/> </layout> </parameter> <!--browser--<parameter> <parametername Value=": Browser"/> <dbtype value="String"/> <size value=" -"/> <layout type="Enterprise.Framework.Logger.Extensions.BrowserLayout"> <conversionpattern value="%browser"/> </layout> </parameter> <!--log messages--<parameter> <parameternam E value=": Message"/> <dbtype value="String"/> <size value=" the"/> <layout type="log4net. Layout.patternlayout"> <conversionpattern value="%message"/> </layout> </parameter> <!--log location--<parameter> <parameter Name value=": Location"/> <dbtype value="String"/> <size value=" -"/> <layout type="log4net. Layout.patternlayout"> <conversionpattern value="%location"/> </layout> </parameter> <!--exception information. Exceptionlayout default format for exception output--<parameter> <parametername value=": Exception"/> <dbtype value="String"/> <size value="4000"/> <layout type="log4net. Layout.exceptionlayout"/> </parameter> </appender> <root> <!--high OFF, FATAL, ERROR, WARN, INFO, DEBUG, all Low--<level value=" All"/> <appender-ref ref="Adonetappender"/> </root> <!--<logger name="Stellalogger"> <level value=" All"/> <appender-ref ref="Adonetappender"/> </logger>--> </log4net></configuration>complete the above two steps to achieve log4net for database Oracle record insertion. The world countries, can also, Tseuk Luk, can resign also, knives, can do also;
[GO] How to configure log4net use Oracle database logging