首先,去官网下载log4net工具 链接http://logging.apache.org/log4net/download_log4net.cgi

目前最新的版本 log4net-1.2.15-bin-newkey.zip

下载之后,目录log4net-1.2.15-bin-newkey\log4net-1.2.15\bin\net\4.0\release 里面的log4net.dll就是我们要引用的dll了。

新建一个winform程序,添加引用

然后在程序配置文件App.conifg中加入配置,这里要申明的一点是,不是一定要把log4net的配置放在这个文件里,重新创建一个xml文件也是可以的,一会儿将在下面说到。

我配置得比较简单,需要进行复杂配置的朋友可以去参照他给的示例xml,里面有注释。配置文件App.config如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<log4net>

<logger name="ErrorLog">
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\\ErrorLog\\"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<staticLogFileName value="false" />
<datePattern value="_yyyyMMdd&quot;.txt&quot;"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-d{yyyy-MM-dd HH\:mm\:ss} - %p%n%m%n%n"/>
</layout>
</appender>
</log4net>
</configuration>

值得注意的是,一个log需要有一个对应的appender。appender中可以配置日志的格式啊,追加日志的方式啊等等。

然后有一点需要特别注意的就是。一定要在Properties中的AssemblyInfo.cs中添加一行:

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

这里回答一下上面的问题。在这一行配置中,是可以配置log4net的配置文件位置的,如果像上面一样,就是程序默认的配置文件App.config中读取配置信息,如果你想写在其他地方,单独写一个xml,比如要写在最终生成的exe同级目录下的log4net.xml中,那么这一行就该这么写

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]

注意watch=true是必须的,否则程序就不会对这个进行监听,换个意思,这里可以做开关日志记录的操作。

然后配置完成。看效果。

我们添加一个按钮,直接来看效果:

然后在这个按钮的点击事件中:

private void button1_Click(object sender, EventArgs e)
{
log4net.ILog log = log4net.LogManager.GetLogger("ErrorLog");
log.Error("日志测试");
}

这里略加提醒,这个ErrorLog是在配置文件中配置的logger的name属性,不可以胡乱写,不然程序会找不到那个logger。另外,可以在配置文件中配置各种logger,很多logger,比如业务方面的,数据库方面的,错误信息,换一个logger名字和对应的Appender的名字就可以了。

然后点击按钮。按照代码,应该写一个错误日志,日志内容是“日志测试”,我们去看看结果。

从上图可以看到,在debug目录新建了一个文件夹log,点击进去

这里这个文件夹就是在配置文件中配置的logger名称了,你配置了多个logger,这里就会有多个对应的文件夹,

这个日志文件的名字格式也是在对应的appender 中可以配置的,打开txt文件:

成功!!!同理,这里所有的格式,都是可以配置的。赶快去使用吧。

总结一下需要注意的点:

1、配置文件一个logger要有一个对应的appender,这个appender可以决定日志的名字,格式,写入方式等等。

2、配置好以后一定不要放了去Properties中的AssemblyInfo.cs中添加一行:[assembly: log4net.Config.XmlConfigurator(Watch = true)],如果你的配置不是写在程序默认配置文件中的,这里要设置好文件的路径,具体例子看上面正文。要关掉日志,Wacth=false即可。不用去程序中注释原来所有的日志代码。

c#中使用log4net工具记录日志的更多相关文章

  1. 在类库项目中使用log4net(RollingFileAppender)记录日志

    1.创建解决方案 2.创建类库项目 3.根据需要修改命名空间,修改(和/或)添加类到类库 4.引用log4net 5.类库项目根目录下创建leg4net配置文件,如D3CallTriggerPlugi ...

  2. .NET中使用log4net

    一,加载log4net引用 下载log4net.dll,我们这里使用的是.NET2.0 下载地址:http://files.cnblogs.com/gosky/log4net-1.2.13-bin-n ...

  3. 在类库中使用log4net

    最近在做一个类库,用的C#写的,为了DEBUG方便需要日志输出,于是找了log4net这个工具进行日志输出; 因为调用这个类库的是C++,而且本人对C++不是很熟悉,于是无法在app.config或者 ...

  4. 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页

    本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...

  5. asp.net core中使用log4net

    和之前的ASP.NET MVC中的使用LOG4NET的方法有些不同,这里先记录一下,使用步骤如下 : 1. 建立 ASP.NET CORE项目中,NUGET中搜索log4net后下载安装 2. 根目录 ...

  6. Quartz.net 2.x 学习笔记02-Quartz.net 2.x在MVC站点中结合Log4net的使用

    Quartz.net 2.x在MVC站点中结合Log4net的使用 首先新建一个MVC的空站点: 第二步,添加Quartz.net的引用 在搜索处输入quartz.net搜索安装即可(目前是2.3) ...

  7. 利用Log4net组件记录日志

    项目中利用Log4net记录日志还是比较方便的,我也按照网上的一些操作进行了实践 参考文章 1:Log4Net使用指南2:LOG4NET日志配置 组件下载 log4net组件下载 1:设置配置文件,这 ...

  8. .netcore3.1使用log4net/nlog记录日志

    .netcore3.1使用log4net/nlog记录日志 .netcore3.1与2.x之间很是有不少差异的.本来想通过ctrl+c,ctrl+v将在2.2中实现的简单日志记录搬到.netcore3 ...

  9. 在C#代码中应用Log4Net系列教程(附源代码)

    Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...

随机推荐

  1. codeforces 631D. Messenger kmp

    题目链接 首先想到kmp, 和普通的不一样的是,中间部分严格相等, 头和尾的字符相等但是数量可以不相等. 所以应该把子串的头和尾先去掉,然后对剩下的部分进行kmp. 子串长度为1或2要特别讨论. 不要 ...

  2. android studio2.0 搭建Robotium环境--有被测源代码的情况下

    1.导入robotium-solo-5.2.1.jar 包    导入junit:4.12.jar2.app- -src- -main- -libs 或者app-libs下 复制进去后,右键add a ...

  3. for循环例子1、2、3

    /* Name:for循环例子1.2.3 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月12日 02:12:41 Description:该代码用来熟悉 ...

  4. Open开发平台,认证,授权,计费

    1.申请appid和appkeyhttp://wiki.connect.qq.com/%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C_oauth2-0 appid:应用的唯一 ...

  5. RequireJS 和 SeaJS

    RequireJS SeaJS CMD规范 CommonJS的规范: 根据CommonJS规范,一个单独的文件就是一个模块.加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的 ...

  6. 深度探索QT窗口系统(五篇)

    窗口作为界面编程中最重要的部分,没有窗口就没有界面,是窗口让我们摆脱了DOS时代,按钮是一个窗口,文本框是一个窗口,标签页是一个窗口,...一个窗口可以由多个窗口组成,每天我们都在与窗口打交道,当你打 ...

  7. Struts2 一张图片引发的bug

    今天如常的打开项目开放.写了一会保存测试.在登录时出了个错误当不影响正常使用.丫的昨天还好好的.行下手上的工作 开始找bug 错误核心代码如下: 10:34:46,442  WARN OgnlValu ...

  8. Highlighting an element as it is hovered over (like inspect element in FireBug) - jQuery Forum

    Highlighting an element as it is hovered over (like inspect element in FireBug) - jQuery Forum Highl ...

  9. c 统计字符串中字符出现的个数

    1.单纯用数组来解题 思路:从左往右循环,每次碰到一个字符就和左边的字符串比较,如果有相同的就右移,如果没有找到相同的就从这个位置向右统计个数并输出. #include<stdio.h> ...

  10. 文件上传下载样式 --- bootstrap

    在平时工作中,文件上传下载功能属于不可或缺的一部分.bootstrap前端样式框架也使用的比较多,现在根据bootstrap强大的样式模板,自定义一种文件下载的样式. 后续会使用spring MVC框 ...