一、简介
1.1 Log4.net优点
几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。经验表明,日志记录往往是软件开发周期中的重要组成部分。它具有以下几个优点:
1.它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug;
2.一旦在程序中加入了Log 输出代码,程序运行过程中就能生成并输出日志信息而无需人工干预。
3.另外,日志信息可以输出到不同的地方(控制台,文件等)以备以后研究之用。
4.Log4net就是为这样一个目的设计的,用于.NET开发环境的日志记录包。
1.2 Log4.net结构
log4net有四种主要的组件,分别是Logger(记录器), Repository(库), Appender(附着器)以及 Layout(布局)。
1.3 日志记录方式
1.AdoNetAppender:利用ADO.NET记录到数据库的日志。
2.AnsiColorTerminalAppender:在ANSI 窗口终端写下高亮度的日志事件。
3.AspNetTraceAppender:能用asp.net中Trace的方式查看记录的日志。
4.BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。
5.ConsoleAppender:将日志输出到控制台。
6.EventLogAppender:将日志写到Windows Event Log.
7.FileAppender:将日志写到文件中。
8.LocalSyslogAppender:将日志写到local syslog service (仅用于UNIX环境下).
9.MemoryAppender:将日志存到内存缓冲区。
10.NetSendAppender:将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。
11.RemoteSyslogAppender:通过UDP网络协议将日志写到Remote syslog service。
12.RemotingAppender:通过.NET Remoting将日志写到远程接收端。
13.RollingFileAppender:将日志以回滚文件的形式写到文件中。
14.SmtpAppender:将日志写到邮件中。
15.TraceAppender:将日志写到.NET trace 系统。
16.UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。
1.4 参数
1.%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
2.%n(new line):换行
3.%d(datetime):输出当前语句运行的时刻
4.%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
5.%t(thread id):当前语句所在的线程ID
6.%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
7.%c(class):当前日志对象的名称,例如:
8.%f(file):输出语句所在的文件名。
9.%l(line):输出语句所在的行号。
10.%数字:表示该项的最小长度,如果不够,则用空格填充,如“%-5level”表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充。
二、定义配置文件
1.要使用log4.net记录日志功能,就要建立在Web或者Winform程式中的AssemblyInfo.cs文件中添加如下一语句,这句话的意思是log4net会自动寻找配置文件log4net.config,从而获得并加载其中的配置信息。注意此处的ConfigFile要与项目中的.Config文件名称保持一致。这个配置文件名称在建立的项目下面默认为App.config或Web.config。
ConfigFile要与项目中的.Config文件名称一致
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
2.要使用log4net,首先要在config文件的
3.除此之外,还要在顶级节点
4.两点注意事项
4.1 第一个:在点击配置文件中,把log4.config 文件属性中的下图ITEM改为:赋值到输出目录->如果较新则复制。
4.2 第二个:在上面的配置文件中, 代码: 输出日志文件记录样式: 到此这篇关于C#使用Log4.net记录日志文件的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。三、在代码中使用log4.net记录日志
namespace log4netDemo1
{
class Program
{
public static class TestClass1
{
private static readonly ILog log = LogManager.GetLogger(typeof(TestClass1));
public static void TestLog()
{
for (int i = 0; i < 3; ++i)
{
log.Info(string.Format("Log info {0}", i));
log.Debug(string.Format("Log debug {0}", i));
}
}
}
public static class TestClass2
{
private static readonly ILog log = LogManager.GetLogger(typeof(TestClass2));
public static void TestLog()
{
Random random = new Random();
for (int i = 0; i < 3; i++)
{
//创建日志记录组件实例
//ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
ILog log = log4net.LogManager.GetLogger(typeof(TestClass2));
//记录错误日志
log.Error("error", new Exception("在這裡發生了一個異常,Error Number:" + random.Next()));
//记录严重错误
log.Fatal("fatal", new Exception("在這裡發生了一個致命的錯誤,Exception Id:" + random.Next()));
//记录一般信息
log.Info("提示:系統正在運行");
//记录调试信息
log.Debug("調試信息:debug");
//记录警告信息
log.Warn("警告信息:warn");
}
}
}
static void Main(string[] args)
{
try
{
TestClass1.TestLog();
TestClass2.TestLog();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
----------------------header--------------------------
//TestClass1
2021-05-27 14:54:31,006 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:21) INFO log4netDemo1.Program+TestClass1 [(null)] - Log info 0
2021-05-27 14:54:31,026 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:22) DEBUG log4netDemo1.Program+TestClass1 [(null)] - Log debug 0
2021-05-27 14:54:31,027 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:21) INFO log4netDemo1.Program+TestClass1 [(null)] - Log info 1
2021-05-27 14:54:31,027 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:22) DEBUG log4netDemo1.Program+TestClass1 [(null)] - Log debug 1
2021-05-27 14:54:31,242 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:21) INFO log4netDemo1.Program+TestClass1 [(null)] - Log info 2
2021-05-27 14:54:31,243 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:22) DEBUG log4netDemo1.Program+TestClass1 [(null)] - Log debug 2
2021-05-27 14:54:31,243 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:41) ERROR log4netDemo1.Program+TestClass2 [(null)] - error
//TestClass2
System.Exception: 在這裡發生了一個異常,Error Number:1406401970
2021-05-27 14:54:31,245 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:43) FATAL log4netDemo1.Program+TestClass2 [(null)] - fatal
System.Exception: 在這裡發生了一個致命的錯誤,Exception Id:1970620894
2021-05-27 14:54:31,245 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:45) INFO log4netDemo1.Program+TestClass2 [(null)] - 提示:系統正在運行
2021-05-27 14:54:31,245 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:47) DEBUG log4netDemo1.Program+TestClass2 [(null)] - 調試信息:debug
2021-05-27 14:54:31,246 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:49) WARN log4netDemo1.Program+TestClass2 [(null)] - 警告信息:warn
2021-05-27 14:54:31,246 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:41) ERROR log4netDemo1.Program+TestClass2 [(null)] - error
System.Exception: 在這裡發生了一個異常,Error Number:875602933
2021-05-27 14:54:31,246 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:43) FATAL log4netDemo1.Program+TestClass2 [(null)] - fatal
System.Exception: 在這裡發生了一個致命的錯誤,Exception Id:2141773062
2021-05-27 14:54:31,246 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:45) INFO log4netDemo1.Program+TestClass2 [(null)] - 提示:系統正在運行
2021-05-27 14:54:31,247 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:47) DEBUG log4netDemo1.Program+TestClass2 [(null)] - 調試信息:debug
2021-05-27 14:54:31,247 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:49) WARN log4netDemo1.Program+TestClass2 [(null)] - 警告信息:warn
2021-05-27 14:54:31,247 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:41) ERROR log4netDemo1.Program+TestClass2 [(null)] - error
System.Exception: 在這裡發生了一個異常,Error Number:128221959
2021-05-27 14:54:31,247 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:43) FATAL log4netDemo1.Program+TestClass2 [(null)] - fatal
System.Exception: 在這裡發生了一個致命的錯誤,Exception Id:1256294856
2021-05-27 14:54:31,247 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:45) INFO log4netDemo1.Program+TestClass2 [(null)] - 提示:系統正在運行
2021-05-27 14:54:31,248 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:47) DEBUG log4netDemo1.Program+TestClass2 [(null)] - 調試信息:debug
2021-05-27 14:54:31,248 [9] (D:\Winform\控制台\log4netDemo1\Program.cs:49) WARN log4netDemo1.Program+TestClass2 [(null)] - 警告信息:warn
----------------------footer--------------------------
下一篇:C语言排序之 堆排序
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?