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----------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2015-12-01 WPF中的StackPanel、WrapPanel、DockPanel