1.下载log4net (Google log4net) //已有

2.unzip log4net

3.运行VS,新建 c# Windows应用程序。

4.添加引用Log4NET

5.新建一个应用程序配置文件App.config(具体内容附在后面)

6.打开Form1.cs,

在Namespace上添加一行 [assembly: log4net.Config.DOMConfigurator(Watch=true)] 
(或者 编辑Assembly.cs文件,添加如下内容: 
[assembly:log4net.Config.DOMConfigurator( ConfigFileExtension="config",Watch=true)] )

也可以在properties下面的AssemblyInfo.cs下添加

[assembly:log4net.Config.XOMConfigurator( ConfigFileExtension="config",Watch=true)] )

在类Form1中添加一个静态变量

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

7.添加一个按钮。在按钮处理函数中添加一行 log.Warn("你好!");

8.运行程序。点一下按钮。

OK,打开Bin\Debug\log-file.txt,可以看到“你好”。

附.App.config

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

<configuration>

<!-- Register a section handler for the log4net section -->

<configSections>

<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />

</configSections>

<appSettings>

<!-- To enable internal log4net logging specify the following appSettings key -->

<!-- <add key="log4net.Internal.Debug" value="true"/> -->

</appSettings>

<!-- This section contains the log4net configuration settings -->

<log4net>

<!-- Define some output appenders -->

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">

<param name="File" value="log-file.txt" />

<!-- Example using environment variables in params -->

<!-- <param name="File" value="${TMP}\\log-file.txt" /> -->

<param name="AppendToFile" value="true" />

<!-- An alternate output encoding can be specified -->

<!-- <param name="Encoding" value="unicodeFFFE" /> -->

<layout type="log4net.Layout.PatternLayout">

<param name="Header" value="[Header]\r\n" />

<param name="Footer" value="[Footer]\r\n" />

<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />

</layout>

<!-- Alternate layout using XML

<layout type="log4net.Layout.XMLLayout" /> -->

</appender>

<!-- Setup the root category, add the appenders and set the default level -->

<root>

<level value="ALL" />

<appender-ref ref="LogFileAppender" />

<!-- <appender-ref ref="A" /> -->

</root>

<!-- Specify the level for some specific categories -->

<logger name="SLog4net.Form1">

<!-- <appender-ref ref="B" /> -->

<level value="ALL" />

<appender-ref ref="RollingLogFileAppender" />

</logger>

</log4net>

</configuration>

--------------------------------App.config

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

<configuration>

<!-- Register a section handler for the log4net section -->

<configSections>

<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />

</configSections>

<appSettings>

<!-- To enable internal log4net logging specify the following appSettings key -->

<!-- <add key="log4net.Internal.Debug" value="true"/> -->

</appSettings>

<!-- This section contains the log4net configuration settings -->

<log4net>

<!-- Define some output appenders -->

<appender name="LogFileAppender" type="log4net.Appender.FileAppender">

<param name="File" value="log-file.txt" />

<!-- Example using environment variables in params -->

<!-- <param name="File" value="${TMP}\\log-file.txt" /> -->

<param name="AppendToFile" value="true" />

<!-- An alternate output encoding can be specified -->

<!-- <param name="Encoding" value="unicodeFFFE" /> -->

<layout type="log4net.Layout.PatternLayout">

<param name="Header" value="[Header]\r\n" />

<param name="Footer" value="[Footer]\r\n" />

<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />

</layout>

<!-- Alternate layout using XML

<layout type="log4net.Layout.XMLLayout" /> -->

</appender>

<!-- Setup the root category, add the appenders and set the default level -->

<root>

<level value="ALL" />

<appender-ref ref="LogFileAppender" />

<!-- <appender-ref ref="A" /> -->

</root>

<!-- Specify the level for some specific categories -->

<logger name="SLog4net.Form1">

<!-- <appender-ref ref="B" /> -->

<level value="ALL" />

<appender-ref ref="RollingLogFileAppender" />

</logger>

</log4net>

</configuration>

//调用------------------------------------------------------------

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using log4net;

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

namespace WindowsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

private void button1_Click(object sender, EventArgs e)

{

log.Warn("你好!");

}

}

log4net 使用教程的更多相关文章

  1. 在C#代码中应用Log4Net系列教程

    在C#代码中应用Log4Net系列教程(附源代码)   Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4 ...

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

    在博客园看到一篇关于Log4Net使用教程,比较详细,感谢这位热心的博主 博客园地址:http://www.cnblogs.com/kissazi2/archive/2013/10/29/339359 ...

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

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

  4. LOG4NET图文教程

    LOG4NET教程 一:简介 从操作系统到大多数的大型软件,都会有自己的程序运行时的日志跟踪API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而软件开发人员需要一套强大的日志系统来记 ...

  5. [转]在C#代码中应用Log4Net系列教程(附源代码)

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

  6. Log4Net使用教程

    简介 为方便跟踪程序运行情况,我们可以记录系统运行异常日志,winform和web都可以通过继承异常或者try来实现. 官方网站:http://logging.apache.org/log4net/ ...

  7. log4net 入门教程

    1.下载dll 下载地址:http://mirror.reverse.net/pub/apache/logging/log4net/binaries/ github:https://github.co ...

  8. 动态修改log4net组件的日志文件名

    最近项目使用到log4net来记录日志,当然二话不说先到cnblogs上查看一下各位高手关于log4net的教程和心得主要参看了摩诘 的Log4Net使用指南 (确实是非常好的log4net的入门指南 ...

  9. Log4Net快速配置

    1. Log4NET的概念: a) 级别:trace.debug.info.warn.error.fatal.常用debug(调试信息,程序员临时跟踪执行,在正式运行的项目中应该不显示):warn(警 ...

随机推荐

  1. 《linux内核设计与实现》读书笔记第五章——系统调用

    第5章 系统调用 操作系统提供接口主要是为了保证系统稳定可靠,避免应用程序恣意妄行. 5.1 与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层. 该层主要作用有三个: 为用户空间提供了 ...

  2. Python的深拷贝与浅拷贝

    一.前奏:熟悉Python内存管理 在Python中,变量在第一次赋值时自动声明,在创建—也就是赋值的时候,解释器会根据语法和右侧的操作数来决定新对象的类型. 引用计数器:一个内部跟踪变量 引用计数: ...

  3. ArcGIS Engine开发之旅01---产品组成、逻辑体系结构

    原文:ArcGIS Engine开发之旅01---产品组成.逻辑体系结构 ArcGIS Engine 由两个产品组成:  面向开发人员的软件开发包(ArcGIS Engine Developer k ...

  4. CentOS 6.3下PostgreSQL 的安装与配置

    一.简介 PostgreSQL 是一种非常复杂的对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大,特性最丰富和最复杂的自由软件数据库系统.有些特性甚至连商业数据库都不具备.这个起源于伯克 ...

  5. AC自动机算法详解

    首先简要介绍一下AC自动机:Aho-Corasick automation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一.一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章, ...

  6. [LeetCode]题解(python):054-Spiral Matrix

    题目来源 https://leetcode.com/problems/spiral-matrix/ Given a matrix of m x n elements (m rows, n column ...

  7. margin负值

    一列li并排的时候,需要一些间距的时候,又不需要最右边或者最左边有间距. <!DOCTYPE html> <html lang="zh-CN"> <h ...

  8. webKit和chromium的文章地址

     http://blog.csdn.net/column/details/yongsheng.html?&page=1 

  9. Oracle直方图导致SQL不走索引.

    在ITPUB 上看到一个帖子 http://www.itpub.net/thread-1875212-1-1.html 同一条SQL语句,只有查询条件不一样,查询返回的结果集都为0,一个走了全表扫描, ...

  10. JavaScript:基础表单验证

    在用户填写表单的过程之中,往往需要编写一堆的验证操作,这样就可以保证提交的数据时正确的.那么下面就模拟表单验证的处理操作完成. 如果要想进行验证,首先针对于输入的数据来进行一个验证处理. 1.定义一个 ...