本文转自:http://www.cnblogs.com/PatrickLiu/p/6012153.html

最近在做一个项目的时候,需要增加一个日志的功能,需要使用Log4Net记录日志,把数据插入到Oracle数据库,经过好久的研究终于成功了。把方法记录下来,以备以后查询。

    直接写实现方法,分两步完成:

     、使用NuGet Manager管理工具,增加对Oracle.ManagedDataAccess.dll的引用。

     、配置具体的文件。

<?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>
<!-- 产生数据的脚本
Create table T_LogHistory
(
id NUMBER not null,
log_date DATE not null,
log_thread VARCHAR2() not null,
log_level VARCHAR2() not null,
log_logger VARCHAR2() not null,
log_operator VARCHAR2() not null,
log_message VARCHAR2() not null,
log_iP VARCHAR2() not null,
log_machineName VARCHAR2() not null,
log_browser VARCHAR2() not null,
log_location VARCHAR2() not null,
log_exception VARCHAR2() not null,
constraint pk_LogHistory primary key(id)
); Create Sequence seq_LogHistory_ID
minvalue
maxvalue
start with
increment by
nocache;
-->
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender,log4net">
<!--BufferSize为缓冲区大小,只有日志记录超设定值才会一块写入到数据库-->
<bufferSize value="" />
<!--或写为<param name="BufferSize" value="" />--> <!--引用-->
<!--<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"/> <!--连接数据库字符串-->
<connectionString value="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=80))(CONNECT_DATA=(SERVICE_NAME=databaseName)));User Id=*******;Password=*******;" /> <!--插入到表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)" /> <!--日志记录时间,RawTimeStampLayout为默认的时间输出格式-->
<parameter>
<parameterName value=":logDate" />
<dbType value="DateTime"/>
<layout type="log4net.Layout.RawTimeStampLayout"/>
</parameter> <!--线程号-->
<parameter>
<parameterName value=":thread" />
<dbType value="String" />
<!--长度不可以省略,否则不会输出-->
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter> <!--日志等级-->
<parameter>
<parameterName value=":log_level" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter> <!--日志记录类名称-->
<parameter>
<parameterName value=":logger" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter> <!--操作者。这个是自定义的输出字段,使用重新实现的布局器ReflectionLayout-->
<parameter>
<parameterName value=":operator" />
<!--设置为Int32时只有bufferSize的 value<=""才正确输出,没有找出原因。-->
<dbType value="String" />
<size value=""/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%username" />
</layout>
</parameter> <!--IP地址-->
<parameter>
<parameterName value=":clientIP" />
<dbType value="String" />
<size value="" />
<layout type="Enterprise.Framework.Logger.Extensions.ClientIPLayout,Enterprise.Framework.Logger">
<conversionPattern value="%ClientIP"/>
</layout>
</parameter> <!--机器名-->
<parameter>
<parameterName value=":machineName" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{log4net:HostName}" />
</layout>
</parameter> <!--浏览器-->
<parameter>
<parameterName value=":browser" />
<dbType value="String" />
<size value="" />
<layout type="Enterprise.Framework.Logger.Extensions.BrowserLayout">
<conversionPattern value="%Browser" />
</layout>
</parameter> <!--日志消息-->
<parameter>
<parameterName value=":message" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter> <!--记录日志的位置-->
<parameter>
<parameterName value=":location" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%location" />
</layout>
</parameter> <!--异常信息。ExceptionLayout 为异常输出的默认格式-->
<parameter>
<parameterName value=":exception" />
<dbType value="String" />
<size value="" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender> <root>
<!--高 OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL 低-->
<level value="ALL"/>
<appender-ref ref="ADONetAppender" />
</root> <!--<logger name="StellaLogger">
<level value="ALL"/>
<appender-ref ref="AdoNetAppender" />
</logger>-->
</log4net>
</configuration> 完成上面两步就可以实现Log4Net针对数据库Oracle的记录插入。 天下国家,可均也;爵禄,可辞也;白刃,可蹈也;中庸不可能也

[转]如何配置Log4Net使用Oracle数据库记录日志的更多相关文章

  1. 如何配置Log4Net使用Oracle数据库记录日志

    最近在做一个项目的时候,需要增加一个日志的功能,需要使用Log4Net记录日志,把数据插入到Oracle数据库,经过好久的研究终于成功了.把方法记录下来,以备以后查询. 直接写实现方法,分两步完成: ...

  2. springMVC 配置jdbcTemplate连接Oracle数据库出错

    springMVC 配置jdbcTemplate连接Oracle数据库出错 错误信息: log4j:WARN No appenders could be found for logger (org.s ...

  3. 修改本地配置远程连接oracle数据库

    当我们需要查看数据库信息时,我们更愿意通过客户端来查看,这样不仅操作方便,而且查看更精准.那么需要远程连接数据库需要在本地修改那些配置呢?以下是我个人的经验,希望大家都指正. 1.在oracle安装目 ...

  4. PLSQL Developer安装、配置、连接oracle数据库

    0.资源准备 1) PLSQL Developer安装包(由于安装包超过10M,无法上传,请自行下载) 2) instantclient_11_2安装包(由于安装包超过10M,无法上传,请自行下载) ...

  5. Navicat Premium 连接Oracle 数据库之配置

    Navicat Premium连接Oracle 数据库之配置 1.Oracle数据库服务器下载 Oracle官方网站下载数据库最新版本:http://www.oracle.com/technetwor ...

  6. c#用log4Net将日志写入到Oracle数据库,并写入到文件中

    原文:c#用log4Net将日志写入到Oracle数据库,并写入到文件中 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https:/ ...

  7. oracle数据库的安装、配置与无残留卸载

    安装配置   :关闭专用网络防火墙 2 :以管理员身份运行安装文件 ——“setup.exe” 3 :设置口令    其中SYS 用户权限大于 SYSTEM 4 :先决条件检查,若验证成功,点击 ”下 ...

  8. 三、oracle数据库成功安装步骤 Oracle数据源配置

      安装完Oracle驱动后,如需连接远程Oracle数据库,还需进行数据源配置,类似Windows下的ODBC数据源配置. 运行"开始菜单\Oracle - OraDb11g_home1\ ...

  9. 二、oracle数据库成功安装步骤 配置监听器

      Oracle数据库使用监听器来接收客户端的连接请求,要使客户端能连接Oracle数据库,必须配置监听程序. 在安装Oracle数据库时,如果选择的是"创建和配置数据库",则安装 ...

随机推荐

  1. Eclipse导出JAR过程

    Eclipse是一款免费的JAVA开发环境,被各个软件公司使用,可以说是目前使用最多的JAVA开发工具了,网址:http://www.eclipse.org 下面演示如何建立JAVA工程和导出JAR: ...

  2. 循环语句(循环for与while等)

    1.1for循环 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  3. Java面试题(全)--视频系列

    此系列为面试笔试题的视频讲解,以下均为超链接,点击即可进入每个知识点的讲解. Java面试题01.面试的整体流程 Java面试题02.java的垮平台原理 Java面试题03.搭建一个java的开发环 ...

  4. CASE语句用法学习

    A. 使用带有 CASE 简单表达式的 SELECT 语句 SELECT ProductNumber, Category = CASE ProductLine WHEN 'R' THEN 'Road' ...

  5. 【JavaScript】类继承(对象冒充)和原型继承__深入理解原型和原型链

    JavaScript里的继承方式在很多书上分了很多类型和实现方式,大体上就是两种:类继承(对象冒充)和原型继承. 类继承(对象冒充):在函数内部定义自身的属性的方法,子类继承时,用call或apply ...

  6. rdlc报表函数

    字符串函数 使用串联运算符和      Visual Basic 常量可将多个字段组合在一起.以下表达式返回两个字段,它们分别位于同一文本框的不同行中: 复制代码 =Fields!FirstName. ...

  7. Smarty <= 3.1.32 Remote Code execution(CVE-2017-1000480)

    Smarty介绍   smarty是一个php模板引擎,其项目地址:https://github.com/smarty-php/smarty 测试环境搭建   下载:https://github.co ...

  8. 代码版本控制:git使用

    1.https://github.com/ 注册账号 2. 点击 Start a project 3. 4. 5.      Clone or download 6.      安装git 7.    ...

  9. phpspreadsheet开发手记

    坑安装简单示例通过模板来生成文件释放内存单元格根据索引获取英文列设置值合并单元格居中显示宽度设置批量设置单元格格式直接输出下载自动计算列宽函数formula单元格变可点击的超链 PhpSpreadsh ...

  10. OpenERP 中国财务模块 调整

    最开始的模样是这个样子的 后三行是没用的,于是在RML文件中注释掉相关的代码,改进后的界面如下: 这个样子看起来是好多了,但是 数量跟是十亿千百的那块看起来还是很别扭,调整行高后的结果: 最诡异的事情 ...