最近在做一个小软件,需要用到记录日志的功能,使用java编程的朋友应该对log4j很熟悉,当然它也有.net的版本,而我要做的小软件就是基于.net下的,因此就用到了log4net,下面进入主题。
开发环境:vs2005+log4net1.2+access
1、新建一个mdb文件,建立一个名称为data的数据表
表结构如下
2、首先在vs2005中新建一个工程,在AssemblyInfo.cs文件中的最后一行加入下列代码,将第一步设置好的mdb包含在工程中,并置为 ”始终复制“
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4netConfig.xml", Watch = true)]
log4netConfig.xml为log4net的配置文件,当然你也可以把配置直接app.config中,但是不推荐这样做
log4netConfig.xml文件也包含在项目中,并置为 ”始终复制“
下面是log4netConfig.xml的内容
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"/> </configSections> <log4net> <root> <level value="ALL" /> <appender-ref ref="AdoNetAppender" /> </root> <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender"> <bufferSize value="0" /> <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=./data.mdb;" /> <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="String" /> <size value="4000" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date" /> </layout> </parameter> <parameter> <parameterName value="@thread" /> <dbType value="String" /> <size value="4000" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread" /> </layout> </parameter> <parameter> <parameterName value="@log_level" /> <dbType value="String" /> <size value="4000" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level" /> </layout> </parameter> <parameter> <parameterName value="@logger" /> <dbType value="String" /> <size value="4000" /> <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="4000" /> <layout type="log4net.Layout.ExceptionLayout" /> </parameter> </appender> </log4net> </configuration>
其中<connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=./data.mdb;" />
中的Source=./data.mdb表示的是程序路径下的data.mdb
网上很多的例子是将mdb路径置为绝对路径,非常不推荐这样做,因此这里./data.mdb使用的是相对路径
3、上述步骤做完后log4net就配置好了,在From1中进行测试
public Form1()
{
InitializeComponent();
log = log4net.LogManager.GetLogger("logger名称");
log.Debug("日志内容");
}
运行该工程,然后在access中就会插入一条对应的日志
本工程源代码下载(在下面超链接中单击右键,选择目标另存为,此时下载的文件后缀名为gif,下载完后修改为rar即可)