Log4Net(一):快速入门

概览


  Log4Net是Apache Log4J框架在.NET平台上的实现,它是一个帮助开发者将日志信息以多种方式(数据库、控制台、文件等)输出的开源工具。

为什么要使用日志记录

  • 提供应用程序运行时状态,供开发人员快速定位程序中的Bug
  • 通过多种方式输出,例如将异常信息通过邮件发送给系统管理员,及时发现问题
  • 代替某些注释

日志记录的缺点

  • 降低系统性能

##快速入门

  本节通过以下三个步骤,简单讲解Log4Net的使用方法:

开发环境:Microsoft Visual Studio Enterprise 2015

Log4Net安装

  新建控制台应用程序Log4NetSample,工具栏选中Tools|NuGet Package Manager|Package Manager Console,输入Install-Package log4net,如下图所示,安装成功。

Log4Net配置

  命名空间前添加XmlConfiguratorAttribute标记:

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

注:也可以将标记添加至AssemblyInfo.cs,针对整个程序集生效

  向app.config文件添加如下配置:

<configuration>
	<configSections>
		<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
	</configSections>

	<log4net>
		<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      		<!--日志路径-->
      		<param name= "File" value= "D:\Log\"/>
      		<!--是否是向文件中追加日志-->
      		<param name= "AppendToFile" value= "true"/>
      		<!--log保留天数-->
      		<param name= "MaxSizeRollBackups" value= "10"/>
      		<!--日志文件名是否是固定不变的-->
      		<param name= "StaticLogFileName" value= "false"/>
      		<!--日志文件名格式为:2017-07-25.log-->
      		<param name= "DatePattern" value= "yyyy-MM-dd&quot;.log&quot;"/>
      		<!--日志根据日期滚动-->
      		<param name= "RollingStyle" value= "Date"/>
      		<!--日志文本格式-->
      		<layout type="log4net.Layout.PatternLayout">
	        	<!--例:2017-07-25 10:56:15,506 [9] INFO  Log4NetSample.Program 18 - 消息 -->
	        	<!--%d  时间-->
	        	<!--%t  线程-->
	        	<!--%-5p  日志级别-->
	        	<!--%c  出错类-->
	        	<!--%L  出错行-->
	        	<!--%m  日志信息-->
	        	<!--%n  换行-->
	        	<param name="ConversionPattern" value="%d [%t] %-5p %c %L - %m %n" />
      		</layout>
		</appender>

    	<root>
      		<!--(高) OFF > FATAL > ERROR > WARN > INFO > DEBUG > ALL (低) -->
      		<level value="all" />
      		<appender-ref ref="RollingLogFileAppender"/>
    	</root>
	</log4net>
</configuration>

Log4Net使用

  向Program.cs文件的Main方法键入如下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
using log4net;

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Log4NetSample
{
    class Program
    {
        static void Main(string[] args)
        {
            var log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

            log.Info("消息");
            log.Warn("警告");
            log.Error("异常");
            log.Fatal("错误");

            Console.ReadLine();
        }
    }
}

启动程序,如下图所示,D:\Log目录下已经生成了log文件

posted @ 2017-07-25 13:06  Answer.Geng  阅读(328)  评论(0编辑  收藏  举报