首先:建立项目并添加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有以下几种取值
|
级别 |
允许的方法 |
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!");
浙公网安备 33010602011771号