怎么样使用log4net成功将日志写入oracle数据库?

怎么样使用log4net成功将日志写入oracle数据库?

我用了整整一天的时间才将log4net的日志文件写入oracle数据库,在配置的时候发现网上大多都是写入到mySql的,很少有人写入oracle,而且都反应很难成功。在此我将我的经验记录下来,希望能帮大家解决一些问题。

首先,是到http://logging.apache.org/log4net/下下载log4net的软件包,其中有生成好的动态链接库和源码(在中间的源码可是帮了我大忙了)。将下载下来的压缩包解压后,在bin目录下根据你的需求寻找合适你的log4net.dll文件,并且将它加载到你的工程下。

其次,从你的<系统盘>/WINDOWS/Microsoft.NET/Framework/<使用版本>下将system.data.oracleclient.dll文件拷贝下来放入到你工程的bin目录下(我这里指web工程),然后将这个包加入到你的工程中。

然后,就是配置文件了,你可以在你的web.config(app.config)中写入配置,也可以新建立一个文件(本人在工程中新建立了一个文件名字是“log4net.config”)。log4net可以完成很多功能,其功能的配置在它的文档中都有说明,如果你有兴趣的话可以查看http://logging.apache.org/log4net/release/config-examples.html。但是如果你希望将日志写入到orcale9(其他版本我没有测试)那么document上的配置拿来是不可以直接使用的,要改动的地方有一下几处:

(1)<connectionType>标签中的value属性值。将Version的值改成你在vs下看到的system.data.oracleclient.dll版本。然后使用Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin下的sn.exe的-Tp命令查看system.data.oracleclient.dll的公钥标记将这个值更改到PublicKeyToken中。

(2)<pParameterName value=":log_level" />中pParameterName 标记写错了应该是parameterName (文档中出现这样的错误实在不应该)

最后,就是在你的工程中写代码了。如果是web工程,那么就在Global.asax.cs的Application_Start方法中加入如下的代码。

//读取log4net的配置文件
log4net.Config.XmlConfigurator.Configure(new FileInfo("log4net.config"));

然后在每个要log4net的类上声明一个静态的公共数据

//日志信息
private static readonly ILog log = LogManager.GetLogger( typeof(类名) );就可以通过log的对象写入相应级别的日志了。