常见面,却不怎么用,究其原因还是觉得太复杂了点。不过,这东西出现次数越来越频繁,也只好写点东西,以备后用。本文仅对 Log4net 的使用做个简要说明,所有涉及到扩展和开发的部分一概忽略。
具体在一个Asp.net中建立给应用程序建立日志文档的步骤如下:
第一步:引用Log4Net类库。(在这里选择net下面的2.0版本)
第二步:在解决方案中添加全局文件Global.asax文件,在应用程序的开始添加如下代码:
void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
log4net.Config.XmlConfigurator.Configure();
}
第三步:配置Webconfig.WebConfig如下:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value=“test.txt”/> <!--存放在那个文件当中-->
<appendToFile value="true"/>
<maxSizeRollBackups value=“10”/><!—滚动日志-->
<maximumFileSize value=“1024KB”/><!—单个文件大小-->
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
</configuration>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value=“test.txt”/> <!--存放在那个文件当中-->
<appendToFile value="true"/>
<maxSizeRollBackups value=“10”/><!—滚动日志-->
<maximumFileSize value=“1024KB”/><!—单个文件大小-->
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
</configuration>
第四步:使用方法如下:
ILog log = LogManager.GetLogger(typeof(Program));
log.Debug("我的第一条日志");
log.Warn("程序连接时间过长");
log.Warn("用户尝试进行XSS攻击");
string s = Console.ReadLine();
try
{
int i = Convert.ToInt32(s);
}
catch (Exception ex)
{
log.Error("数据转换出错,用户输入:"+s);
log.Error("数据转换出错,用户输入:" + s,ex);
}