网上已经有很多关于Log4Net的用法的文章,本人还在写的原因是希望与大家多交流和加深印象。在此也感谢 http://logging.apache.org/log4net/downloads.html上去下载。
其次: 在文件AssemblyInfo.cs下面加入
[assembly:log4net.Config.XmlConfigurator(ConfigFile="XMLFile1.xml",Watch=true)]
其中是ConfigFile="XMLFile1.xml" 是你的配置文件名称,并在文件Global.asax中protected void Application_Start(Object sender, EventArgs e)中加上 log4net.Config.XmlConfigurator.Configure();
再次:就是配制Log4Net需要的配制文件了,这里有两中方式:一种是写文本文档,一种是写到数据库;
写到文本文档的配制方式为:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,
log4net-net-1.0"
/>
</configSections>
<log4net debug="false">

<!-- 定义根日志对象 里面只有两个属性 level 和 appender-ref

level 一个

appender-ref 可以多个 即定义支持使用的多个Appender对象

-->

<root>


<level value="DEBUG" />

<appender-ref ref="LogFileAppender" />

</root>

<!-- 具体定义支持某个Appender对象

LogFileAppender为Appender对象的名称

type为Appender对象的类型

有如下的

log4net.Appender.AdoNetAppender;

log4net.Appender.UdpAppender;

log4net.Appender.ConsoleAppender

在命名空见log4net.Appender下面还有很多

如果下载了,去文件:log4net-1.2.10\doc\release\config-examples.html

上面还有很多例子


不同的Appender对象还有不同的param

具体可以去config-examples.html

-->

<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >

<!--

定义文件和文件的路径 ,特别注意

如果未有指定路径有可能出现错误 ,具体原因目前不清楚


-->

<param name="File" value="E:\Applog.txt" />


<param name="datePattern" value="yyyy-MM-dd HH:mm" />

<!--

-->

<param name="AppendToFile" value="true" />

<!--

-->

<layout type="log4net.Layout.PatternLayout">

<param name="ConversionPattern" value="%d [%t] %-%L-%F-5p %c [%x] - %m%n" />

</layout>

</appender>

</log4net>


</configuration>

level 是他的级别,主要取值
Level有以下几种取值
|
级别
|
允许的方法
|
Boolean属性
|
优先级别
|
|
OFF
|
|
|
Highest
|
|
FATAL
|
void Fatal(...);
|
bool IsFatalEnabled;
|
|
|
RROR
|
void Error(...);
|
bool IsErrorEnabled;
|
|
|
WARN
|
void Warn(...);
|
bool IsWarnEnabled;
|
|
|
INFO
|
void Info(...);
|
bool IsInfoEnabled;
|
|
|
DEBUG
|
void Debug(...);
|
bool IsDebugEnabled;
|
|
|
ALL
|
|
|
Lowest
|
<param name="File" value="E:\Applog.txt" />
文件保存的地址
<param name="datePattern" value="yyyy-MM-dd HH:mm" />
日期的格式
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
写入日志的基本信息;我看见了的有以下几种:
%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,例如:
模式字符串为:%-10c -%m%n
代码为:
ILog log=LogManager.GetLogger(“Exam.Log”);
log.Debug(“Hello”);
则输出为下面的形式:
Exam.Log - Hello
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
例如,转换模式为%r [%t]%-5p %c - %m%n 的 PatternLayout 将生成类似于以下内容的输出:
176 [main] INFO org.foo.Bar - Located nearest gas station.
第二种写入数据库的方式:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

</configSections>

<log4net debug="false">

<root>

<level value="ALL" />

<appender-ref ref="ADONetAppender" />

</root>

<!--

定义loger的名称和使用的appender

-->

<logger name="AA">

<level value="ALL"/>

<appender-ref ref="ADONetAppender" />

</logger>

<appender name="ADONetAppender" type="log4net.Appender.AdoNetAppender">

<!--

定义几条存入数据库 有2条时才写入数据库,没有两条叫缓存

-->

<bufferSize value="2" />

<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

<connectionString value="database=test;server=.;User ID=sa;Password=" />

<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="DateTime" />

<layout type="log4net.Layout.RawTimeStampLayout" />

</parameter>

<parameter>

<parameterName value="@thread" />

<dbType value="String" />

<size value="255" />

<layout type="log4net.Layout.PatternLayout">

<conversionPattern value="%thread" />

</layout>

</parameter>

<parameter>

<parameterName value="@log_level" />

<dbType value="String" />

<size value="50" />

<layout type="log4net.Layout.PatternLayout">

<conversionPattern value="%level" />

</layout>

</parameter>

<parameter>

<parameterName value="@logger" />

<dbType value="String" />

<size value="255" />

<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="2000" />

<layout type="log4net.Layout.ExceptionLayout" />

</parameter>

</appender>

</log4net>


</configuration>

注意数据库联接,还有参数等;
最后:在你需要的地方引用
log4net.ILog log = log4net.LogManager.GetLogger("guojiang");
log.Info("werwesdfsd!");
接OK了