log4net日志功能使用
早就想了解下log4net这个组件的使用,直至今日才有时间学习了一下,现在把学习的新的总结如下:
(1)、在项目中添加log4net.dll引用。说明:该版本是1.2.10.0 ,log4net for .net framework2.0
(2)、在Web.Config文件中添加如下配置代码:
............
<!--log4net配置 BEGIN-->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<!---日志记录器,可以有一个,也可以有多个-->
<log4net>
<logger name="AppLogger1">
<level value="INFO"></level>
<appender-ref ref="LogFileAppender"></appender-ref>
</logger>
<logger name="AppLogger2">
<level value="DEBUG"></level>
<appender-ref ref="rollingFile"></appender-ref>
</logger>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="SysLog/ErrorLog.txt"/>
<param name="AppendToFile" value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="Header" value="----------Start----------
"/>
<param name="Footer" value="----------End----------
"/>
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] %X{auth} - %m%n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="FATAL"/>
</filter>
</appender>
<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net">
<param name="File" type="" value="log/"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<param name="DatePattern" value="yyyyMMdd"/>
<param name="StaticLogFileName" value="false"/>
<Layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
<param name="Header" value="----------Start----------
"/>
<param name="Footer" value="----------End----------
"/>
</Layout>
</appender>
</log4net>
<!--log4net配置 END-->
..................
(3)、在项目中添加一个Global.asax(全局应用程序类),在Application_Start()方法中添加如下一行代码:
void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
log4net.Config.XmlConfigurator.Configure();
}
(4)、按(2)步骤中红色部分标注,在项目根目录下,创建一个SysLog的文件夹,里面增加一个ErrorLog.txt的文本文件,用于记录错误日志的详细信息。
(5)、在Web.Config文件中添加数据库连接字符串的配置代码:(这里用到的MSSQL2000数据库,这里可以根据需要进行修改设置)
<appSettings>
<add key="ConnectionString" value="Data Source=.;uid=sa;pwd=;Database=master"/>
</appSettings>
(6)、这里只举简单例子作简单说明:
如在Default .aspx.cs文件中
1)、首先添加using System.Data.SqlClient;的命名空间引用。
2)、protected void Page_Load(object sender, EventArgs e)
{
try
{
string conString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString1"];
SqlConnection con = new SqlConnection(conString);
con.Open();
Response.Write("<script language=JavaScript>alert('数据库连接成功!')</script>");
}
catch (Exception ex)
{
Response.Write("<script language=javascript>alert('数据库连接失败!')</script>");
log4net.ILog log = log4net.LogManager.GetLogger("AppLogger1");
log.Info("数据库连接失败,具体原因如下:", ex);
}
}
这里的红色标记部分在Web.Config文件中配置的名称为ConnectionString,由于连接字符串书写错误,造成错误,这样的错误就在ErrorLog.txt文件中记录下来了。以下是摘自其中的日志信息。
----------Start----------
2009-10-14 10:21:54,093 [4] INFO AppLogger1 [(null)] (null) - 数据库连接失败,具体原因如下:
System.InvalidOperationException: ConnectionString 属性尚未初始化。
在 System.Data.SqlClient.SqlConnection.PermissionDemand()
在 System.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.SqlClient.SqlConnection.Open()
在 _Default.Page_Load(Object sender, EventArgs e) 位置 j:/asp.net3.5/log4net/Default.aspx.cs:行号 21
----------End----------