log4net是一个用来记录日志的,功能很多,可以把日志记录到文件,控制台,数据库,windows事件日志中。使用起来非常方面,只需要引用log4net.dll和配置相关文件就可以了。今天写了个测试的demo,按照网上教的方法,感觉一样,但是日志就是不出来~~~后来发现log4net的配置必须在app.config文件中配置,别的名字的还不行,至今不知道原因。姑且发个winform下使用log4net成功的例子,之后有时间和需要再去学习。
1、在引用里面添加log4net.dll;
2、添加一个配置文件:app.config,其内容如下:
<?xml version="1.0" encoding="utf-8"
?>
<configuration>
<configSections>
<!--在配置选项中加入log4net的引用-->
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net"/>
</configSections>
<log4net>
<appender name="LogFile"
type="log4net.Appender.RollingFileAppender,log4net"
>
<param name="File" value="../../logs/log.txt"
/>
<!--定义用文件来保存日志,生成的文件log.txt放在logs目录中,logs文件夹和应用程序生成的bin文件夹在同一目录下。-->
<param name="AppendToFile" value="false"
/>
<param name="RollingStyle" value="Date"
/>
<param name="DatePattern" value="yyyy.MM.dd"
/>
<param name="StaticLogFileName" value="true"
/>
<layout
type="log4net.Layout.PatternLayout,log4net">
<!--定义输出风格-->
<param name="ConversionPattern" value="%d [%t] %-5p
%c - %m%n" />
<param name="Header"
value=" ----------------------header-------------------------- "
/>
<param name="Footer"
value=" ----------------------footer-------------------------- "
/>
</layout>
</appender>
<appender>
<!--一个配置文件可以有很多appender,一个appender节就相当于一个日志输出介质或方法。-->
</appender>
<logger name="logApp">
<!--定义logger对象的名字为logApp,以方便在代码中使用logger-->
<!--配置项可以不配置-->
<level value="ALL" />
<!--定义输出的信息等级为所有其中包括Fatal.Error.Warn.Info.Debug-->
</logger>
<root>
<!--定义日志输出的方式和等级-->
<level value="INFO" />
<appender-ref ref="LogFile"
/><!--选择了文件输出,注意粗体部分对应的名称-->
</root>
</log4net>
</configuration>
3、在程序集AssemblyInfo.cs中添加:
[assembly: log4net.Config.XmlConfigurator(Watch =
true)] //Add by lifen 2012-4-23
12:57:50
4、在代码中调用:
private void btnTest_Click(object sender, EventArgs e)
{
Random random = new Random();
for (int i = 0; i < 1; i++)
{
//创建日志记录组件实例
//ILog log =
log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
//ILog log = log4net.LogManager.GetLogger("logApp");
ILog log =
log4net.LogManager.GetLogger(typeof(Form1));//Form1是当前类的名字
//MessageBox.Show(log.ToString()+"log.Logger.Name =
"+log.Logger.Name);
//记录错误日志
log.Error("error", new Exception("在这里发生了一个异常,Error
Number:"+random.Next()));
//记录严重错误
log.Fatal("fatal", new Exception("在发生了一个致命错误,Exception
Id:"+random.Next()));
//记录一般信息
log.Info("提示:系统正在运行");
//记录调试信息
log.Debug("调试信息:debug");
//记录警告信息
log.Warn("警告:warn");
}
}
代码下载地址:我的sina资料共享中有,不知道是不是这个地址:http://iask.sina.com.cn/u/1680753090/ish
加载中,请稍候......