Log4Net(一):快速入门

时间:2022-08-30 12:05:11

概览


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

为什么要使用日志记录

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

日志记录的缺点

  • 降低系统性能

##快速入门


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

Log4Net(一):快速入门

开发环境:Microsoft Visual Studio Enterprise 2015

Log4Net安装

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

Log4Net(一):快速入门

Log4Net配置

  命名空间前添加XmlConfiguratorAttribute标记:

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

Log4Net(一):快速入门

注:也可以将标记添加至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文件

Log4Net(一):快速入门

Log4Net(一):快速入门的更多相关文章

  1. 快速入门系列--WebAPI--04在老版本MVC4下的调整

    WebAPI是建立在MVC和WCF的基础上的,原来微软老是喜欢封装的很多,这次终于愿意将http编程模型的相关细节暴露给我们了.在之前的介绍中,基本上都基于.NET 4.5之后版本,其System.N ...

  2. Quartz&period;NET快速入门指南

    最近,在工作中遇到了 Quartz.net 这个组件,为了更好的理解项目代码的来龙去脉,于是决定好好的研究一下这个东西.确实是好东西,既然是好东西,我就拿出来分享一下.万丈高楼平地起,我们也从入门开始 ...

  3. Web Api 入门实战 (快速入门&plus;工具使用&plus;不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  4. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础&equals;》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  5. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  6. 【第三篇】ASP&period;NET MVC快速入门之安全策略(MVC5&plus;EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  7. 【番外篇】ASP&period;NET MVC快速入门之免费jQuery控件库(MVC5&plus;EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  8. Mybatis框架 的快速入门

    MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...

  9. grunt快速入门

    快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...

随机推荐

  1. &lbrack;C1&rsqb; C1FlexGrid 排除非绑定列的验证效果

    一.前言 前提是 C1FlexGrid 中存在数据绑定列和自定义列(非数据绑定列),此时如果该行编辑后出现排他错误,自定义列也会出现验证结果的红色边框: 但是自定义列如果只是一些按钮操作,提示说明什么 ...

  2. Android 设置 横屏 竖屏 (转)

    http://2960629.blog.51cto.com/2950629/701227 方法一:在AndroidManifest.xml中配置 如果不想让软件在横竖屏之间切换,最简单的办法就是在项目 ...

  3. sqlserver客户端连接只显示特定数据库的配置方法

    首先,在实例级,有一个 view any database的这个属性,打开时可以看到所有数据库的元数据表,因此能看到实例下所有数据库的名字.默认public角色拥有这个属性.所以新建的登陆是可以看到所 ...

  4. Python学习入门基础教程&lpar;learning Python&rpar;--2&period;2 Python下的变量基础

    变量的基本概念,变量可以这样去理解,变量是一个值,这个值存储在计算机的内存里.以网购为例,您在选购傻商品的时候,是在不同页面里选不同的商品,选好一件点击“放入购物车”,选完了再点击去结帐,这些商品的价 ...

  5. RDIFramework&period;NET ━ &period;NET快速信息化系统开发框架 V3&period;2-&gt&semi; &OpenCurlyDoubleQuote;Tab”标签新增可&OpenCurlyDoubleQuote;最大化”显示功能

    最大化工作区的功能是非常必要的,特别是当模块功能比较多时,把工作区最大的展现出来就变得很重要,RDIFramework.NET V3.2版本对工作区新增了最大功能,最大化工作区后如下图所示:  具体使 ...

  6. word表格转html后去除冗余代码

    word可以另存为html文件,通过这个功能,可以快速实现网页展示word内容,特别是表格的编辑,它包含tr.td.th.rowspan.colspan等内容,直接写比较繁琐. 但word转换过来的h ...

  7. 在Unity5&period;6&period;5f1中使用C&num;7语法

    备忘,记忆力越来越差了,必需把这种琐碎的东西记下来,以防1年后想再用完全没头绪. 之前试过用C#6语法,但是怎么配置操作的完全没印象了. 首先去这下载扩展 https://bitbucket.org/ ...

  8. debian 8 解压安装mysql(版本5&period;7&period;19)

    debian 8 解压安装mysql(版本5.7.19)一.下载 根据目标主机的型号官网下载mysql安装包如: mysql-server_5.7.19-1debian8_amd64.deb-bund ...

  9. WAP网站WML或HTML页面自适应手机屏幕实现方法

     把图片和div的宽度都设置成:width:100%就可以了

  10. cnblog博客管理

    http://www.cnblogs.com/wc1903036673/                                        12436109 https://www.cnb ...