1.下载Log4Net: http://logging.apache.org/log4net/download_log4net.cgi

2.新建一个WinForm程序,取名Log4NetDemo

3.选择对应的dll文件,并解压log4net.dll,比如我的目标框架是4.5.2,所以需要dll文件路径: log4net-1.2.15-bin-newkey.zip\log4net-1.2.15\bin\net\4.5\release

4.添加log4net.dll引用,右键引用->添加引用

5.打开解决方案资源管理器下的app.config文件

修改其内容为

<?xml version="1.0" encoding="utf-8" ?>
<configuration> <startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup> <configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections> <log4net>
<!--定义输出到文件中-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="log\\"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.log'"/>
<staticLogFileName value="false"/>
<param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<!--输出格式-->
<!--样例:2016-04-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/>
</layout> </appender> <root>
<level value="ERROR"/>
<!--文件形式记录日志-->
<appender-ref ref="RollingLogFileAppender"/>
</root> </log4net>
</configuration>

6.新建一个LogHelper(可以用其他名字)类,内容如下:

using System;

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Log4NetDemo
{
public class Log4NetHelper
{
/// <summary>
/// 输出日志到Log4Net
/// </summary>
/// <param name="t">
/// </param>
/// <param name="ex">
/// </param>
public static void WriteLog(Type t, Exception ex)
{
log4net.ILog log = log4net.LogManager.GetLogger(t);
log.Error("Error", ex);
} /// <summary>
/// 输出日志到Log4Net
/// </summary>
/// <param name="t">
/// </param>
/// <param name="msg">
/// </param>
public static void WriteLog(Type t, string msg)
{
log4net.ILog log = log4net.LogManager.GetLogger(t);
log.Error(msg);
}
}
}

7.在窗体上放置一个按钮,按钮的单击事件如下:

        private void btnTest_Click(object sender, EventArgs e)
{
//第一种记录用法
//(1)Log4NetDemo是类名称
//(2)第二个参数是字符串信息
Log4NetHelper.WriteLog(typeof(Log4NetDemo), "测试Log4Net日志是否写入"); //第二种记录用法
//(1)Log4NetDemo是类名称
//(2)第二个参数是需要捕捉的异常块
//try {
//}catch(Exception ex){
//LogHelper.WriteLog(typeof(Log4NetDemo), ex);
//}
}

8.运行程序并点击按钮,看到程序目录下生成log文件夹

打开最里面的txt文件,即可看到记录的日志:

注:文件夹的命名是根据你在app.config里面设置的file节点自动生成的,你可以根据自己的需要自己设置存放的路径和格式等。

[No000084]C# 使用Log4Net(1)-快速建立一个demo的更多相关文章

  1. 快速建立一个Django项目

    快速建立一个Django项目 版本说明 一定要先明确好使用的Python版本和所使用包的版本,避免耽误不要的时间 Python==3.6.4 Django==1.11.9 djangoresframe ...

  2. webpack快速入门——webpack3.X 快速上手一个Demo

    1.进入根目录,建两个文件夹,分别为src和dist 1).src文件夹:用来存放我们编写的javascript代码,可以简单的理解为用JavaScript编写的模块. 2).dist文件夹:用来存放 ...

  3. 如何快速建立一个测试资源Web服务器及异步获取资源(Unity3D)

    背景 1.最近看了几位专栏作家的文章,几篇提到了资源通过网络的动态获取.如何建立一个快速的测试环境,不免是一个问题,也就最简单的就是假设http服务器了,微软系的当然首选的IIS了,别的也能用阿帕奇或 ...

  4. siimpleHttpServer 快速建立一个文件服务器

    利用 SimpleHTTPServer 可以非常快速的建立一个http服务器,如果有同学在做共享文件时遇到了困难,只需要一行代码,即可建站完成. 在想要映射的文件夹目录内,执行命令行 python - ...

  5. Sublime Text怎么快速建立一个html5页面模板

    在编辑器中输入一个半角英文的感叹号(!),然后按下TAB键

  6. springboot+dubbo基于zookeeper快速搭建一个demo

    由于小编是在windows环境下搭建的,故该示例均为在windows下操作,这里只是提供一个快速搭建思路,linux操作也基本上差不多. 首先本示例的dubbo是基于zookeeper发布订阅消息的, ...

  7. gulp 建立一个简单的自动化

    前端项目需要的功能: 1.图片(压缩图片支持jpg.png.gif) 2.样式 (支持sass 同时支持合并.压缩.重命名) 3.javascript (检查.合并.压缩.重命名) 4.html (压 ...

  8. [原创] zabbix学习之旅五:如何快速搭建一个报警系统

    通过之前的文章,我们已搭建好zabbix server.agent和mail客户端,现在万事俱备,只差在server的界面中进行相应配置,即可快速搭建一个报警系统.总的来说,快速搭建一个报警系统的顺序 ...

  9. 运用CMD命令关于快速获取文件夹名称和快速建立文件夹

    前些天头儿让我建立一本本的文件夹,让后交给我了几个命令,快速获取文件夹的名称和快速建立文件夹,省去了一个个的按F2,一个个的复制,粘贴,一个个的新建,再复制粘贴. 首先讲一下第一个问题,快速获取文件夹 ...

随机推荐

  1. Oracle学习总结_day06_视图&序列&索引

    本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! day 06 视图,索引,序列 视图 什么是视图: 视 ...

  2. 转载:《TypeScript 中文入门教程》 6、命名空间

    版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 关于术语的一点说明: 请务必注意一点,TypeScript 1.5里术语名已经发生了变 ...

  3. No.023:Merge k Sorted Lists

    问题: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexit ...

  4. FFMpeg video duration

    1. 代码 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import ...

  5. 向空项目添加 ASP.NET Identity

    安装 AspNet.Identity 程序包 Microsoft.AspNet.Identity.Core 包含 ASP.NET Identity 核心接口Microsoft.AspNet.Ident ...

  6. 通过Laravel 初识Vue.js

    最近也在学习laravel的框, 因为之前学过tp框架, 都说laravel是最优雅的框架,所以开学后忍不住去试试这个在国外已经火的不要不要的框架. 总的来说,对于学习完tp框架后,我觉得tp毕竟是中 ...

  7. JS高程3.基本概念(6)函数

    1.ECMAScript中的函数使用function关键字来声明. eg: function sum (num1,num2){ alert(num1+num2); } sum(3,7); 注意: 在有 ...

  8. jquery点击切换背景色

    刚在自己的前端技术群里有个小伙伴儿问到这个问题,点击的时候进行红色背景和白色背景的切换,然后我就临时想到了一个解决方法,在这里记录一下吧,希望还有别的刚学习前端的小伙伴儿能用到,大神就请绕道咯!另外提 ...

  9. MDM证书申请的流程

    MDM证书申请的流程 整个流程分为两部分:vendor,customer. 一.Vendor 1.成为一个 MDM Vendor 1) 首先你需要拥有一个 Apple Enterprise accou ...

  10. IOS开发基础知识--碎片24

    1:兼容字体大小6plue跟它以下的区别 #define FONT_COMPATIBLE_SCREEN_OFFSET(_fontSize_) [UIFont systemFontOfSize:(_fo ...