ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

日志插件 log4net 的使用

2021-12-16 07:31:25  阅读:191  来源: 互联网

标签:log4net 插件 log 错误 ConsoleApplication5 出错 日志


文本格式说明

可以记载的日志类别包括:FATAL(致命错误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。

文本参数说明

%m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息
%n(new line):换行
%d(datetime):输出当前语句运行的时刻
%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数
%t(thread id):当前语句所在的线程ID 等同于 %thread
%p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等
%c(class):当前日志对象的名称,例如:
        模式字符串为:%-10c -%m%n
        代码为:
        ILog log=LogManager.GetLogger(“Exam.Log”);
        log.Debug(“Hello”);
        则输出为下面的形式:
        Exam.Log       - Hello
%L:输出语句所在的行号
%F:输出语句所在的文件名
%-数字:表示该项的最小长度,如果不够,则用空格填充
%newline: 错误详情
%message: 自定义输出信息
%logger: 类
%property: 属性

 

以下为个人定义的模板

%n==========
%n【日志级别】%-5level
%n【记录时间】%date
%n【线程编号】[%thread]
%n【执行时间】[%r]毫秒
%n【出错文件】%F
%n【出错行号】%L
%n【出错的类】%logger 属性[%property{NDC}]
%n【错误描述】%message
%n【错误详情】%newline

 

输出示例:

==========
【日志级别】ERROR
【记录时间】2012-11-08 15:49:37,625
【线程编号】[10]
【执行时间】[180]毫秒
【出错文件】C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs
【出错行号】24
【出错的类】ConsoleApplication5.Program 属性[(null)]
【错误描述】错误
【错误详情】
System.DivideByZeroException: 尝试除以零。
   在 ConsoleApplication5.Program.Main(String[] args) 位置 C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs:行号 20

==========
【日志级别】ERROR
【记录时间】2012-11-08 15:49:37,666
【线程编号】[10]
【执行时间】[221]毫秒
【出错文件】C:\Users\Administrator\Documents\Visual Studio 2010\Projects\ConsoleApplication5\ConsoleApplication5\Program.cs
【出错行号】28
【出错的类】ConsoleApplication5.Program 属性[(null)]
【错误描述】error
【错误详情】
System.Exception: 发生了一个异常

 

使用说明:

配置文件:

节点: <configuration>中添加

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74   <log4net>     <!--定义输出到文件中-->     <appender name="SysAppender" type="log4net.Appender.RollingFileAppender">       <!--日志的路径-->       <file value="Logs/Log4Net/" />       <!--是否覆盖,默认是追加true-->       <appendToFile value="true"/>       <rollingStyle value="Composite"/>       <!--文件名称-->       <DatePattern value="yyyy-MM-dd'.log'"></DatePattern>       <!--设置无限备份=-1 ,最大备份数为1000-->       <param name="MaxSizeRollBackups" value="1000"/>       <!--每个文件的大小-->       <param name="MaximumFileSize" value="500KB"/>       <!--名称是否可以更改为false为可以更改-->       <param name="StaticLogFileName" value="false"/>       <layout type="log4net.Layout.PatternLayout">         <!--输出格式-->         <conversionPattern value="%n========== %n【日志级别】%-5level %n【记录时间】%date %n【线程编号】[%thread] %n【执行时间】[%r]毫秒 %n【出错文件】%F %n【出错行号】%L %n【出错的类】%logger 属性[%property{NDC}] %n【错误描述】%message %n【错误详情】%newline"/>       </layout>     </appender>     <!--定义输出到控制台命令行中-->     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">       <layout type="log4net.Layout.PatternLayout">         <conversionPattern value="%n========== %n【日志级别】%-5level %n【记录时间】%date %n【线程编号】[%thread] %n【执行时间】[%r]毫秒 %n【出错文件】%F %n【出错行号】%L %n【出错的类】%logger 属性[%property{NDC}] %n【错误描述】%message %n【错误详情】%newline"/>       </layout>     </appender>     <!--定义输出到windows事件中-->     <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">       <layout type="log4net.Layout.PatternLayout">         <conversionPattern value="%n========== %n【日志级别】%-5level %n【记录时间】%date %n【线程编号】[%thread] %n【执行时间】[%r]毫秒 %n【出错文件】%F %n【出错行号】%L %n【出错的类】%logger 属性[%property{NDC}] %n【错误描述】%message %n【错误详情】%newline"/>       </layout>     </appender>     <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->     <root>       <!--文件形式记录日志-->>       <appender-ref ref="SysAppender"/>       <!--控制台控制显示日志-->       <appender-ref ref="ConsoleAppender"/>       <!--Windows事件日志-->       <!--<appender-ref ref="EventLogAppender"/>-->       <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉       <appender-ref ref="AdoNetAppender_Access" />       -->     </root>     </log4net>

代码中:

引用

using log4net;
using System.Reflection

在命名空间中添加[红色的内容]

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace ConsoleApplication5

调用示例:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 using System; using System.Collections.Generic; using System.Text; using log4net; using System.Reflection;   [assembly: log4net.Config.XmlConfigurator(Watch = true)] namespace ConsoleApplication5 {     class Program     {         static void Main(string[] args)         {             //创建日志记录组件实例             ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);             //记录严重错误             log.Fatal("严重错误");             log.Fatal("严重错误", new Exception("发生了一个致命错误"));             //记录错误日志             log.Error("错误");             log.Error("错误", new Exception("发生了一个异常"));             //记录警告信息             log.Warn("警告");             log.Error("警告", new Exception("有一个警告信息"));             //记录一般信息             log.Info("一般信息");             log.Error("一般信息", new Exception("发出一个一般信息"));             //记录调试信息             log.Debug("调试信息");             log.Error("调试信息", new Exception("发生了一个调试信息"));             Console.Read();         }     } }

 

示例程序下载: 日志记录插件_log4net.zip

标签:log4net,插件,log,错误,ConsoleApplication5,出错,日志
来源: https://www.cnblogs.com/funiyi816/p/15696220.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有