log4net 是.net 的一款日志记录框架。

它提供了很多的方法来帮助记录日志:

使用起来也比较方便:

选中项目,点击右键,然后选择 Manage NuGet Packages...

安装log4net package。

安装好Package 之后,需要用配置文件来配置log4net.

在项目中添加log4net.config 文件,这个配置文件会将日志以xml 的形式记录到 log.xml 中。

代码如下:

<log4net>

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">

<file value="log.xml" />

<appendToFile value="true" />

<datePattern value="yyyyMMdd" />

<rollingStyle value="Date" />

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

<locationInfo value="true" />

</layout>

</appender>

<root>

<level value="ALL" />

<appender-ref ref="RollingFileAppender" />

</root>

</log4net>

这里有一点要注意,就是需要将log4net.config  copy 到bin folder,这样我们的Exe 才能找到这个配置文件。

在Program 的上面添加代码:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
//[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.xml", Watch = true)]
namespace Log4net
{
class Program
{
static void Main(string[] args)
{
}
}
} 或者是: namespace Log4net
{
class Program
{
static void Main(string[] args)
{
XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config"));
}
}
}

配置好之后,我们就可以记录日志了:

下面是我记录的一个

在这里推荐使用EasyLogViewer 来查看日志:

http://www.codeproject.com/Tips/996927/EasyLogViewer-Yet-another-log-viewer-tool-but-Easi

当然还可以将日志文件的形式保存,只要我们更改下log4net.config 就可以了:

<log4net>

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

<!--日志文件名开头-->

<file value="project.log" />

<!--是否追加到文件-->

<appendToFile value="true" />

<!--混合使用日期和文件大小变换日志文件名-->

<rollingStyle value="Composite" />

<!--日期的格式-->

<datePattern value="&quot;.&quot;yyyyMMdd" />

<!--最大变换数量-->

<maxSizeRollBackups value="30" />

<!--最大文件大小-->

<maximumFileSize value="50MB" />

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

<conversionPattern value="%d [%t] %-5p %m - [%F:%L]%n" />

</layout>

</appender>

<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">

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

<conversionPattern value="%d [%t] %-5p %m%n" />

</layout>

</appender>

<root>

<level value="ALL"></level>

<appender-ref ref="RollingLogFileAppender"></appender-ref>

<appender-ref ref="ConsoleAppender"></appender-ref>

</root>

</log4net>

具体的选项请参考:http://logging.apache.org/log4net/release/config-examples.html

Logging with Log4net (二)的更多相关文章

  1. Comon.Logging与Log4net联合使用

    1.摘要 Common.Logging定义了一种接口的公共接口,尤其在Quartz.net中作为接口型的组件,而具体则使用log4net,nlog等组件. 2.使用步骤 Install-Package ...

  2. 使用Common.Logging与log4net的组件版本兼容问题

    引用:  http://www.cnblogs.com/shijun/p/3713830.html 近期使用了Common.Logging的ILog接口做日志接口,同时利用其log4net适配器与lo ...

  3. python的logging日志模块(二)

    晚上比较懒,直接搬砖了. 1.简单的将日志打印到屏幕   import logging logging.debug('This is debug message') logging.info('Thi ...

  4. Log4Net(二)之记录日志到文档详解

    原创文章,转载必需注明出处:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/log4net-%E4%BA%8C-%E4%B9%8B% ...

  5. logging模块(二十六)

    用于便捷记录日志且线程安全的模块 可在logging.basicConfig()函数中通过具体参数来更改logging模块默认行为,可用参数有 filename:用指定的文件名创建FiledHandl ...

  6. Common.Logging log4net Common.Logging.Log4Net 配置

    1.log4net 单独配置 log4net支持多种格式的日志输出,我这里只配置输出到本地的txt文件这种格式. <log4net> <root> <appender-r ...

  7. 使用Common.Logging+log4net规范日志管理

    Common.Logging+(log4net/NLog/) common logging是一个通用日志接口,log4net是一个强大的具体实现,也可以用其它不同的实现,如EntLib的日志.NLog ...

  8. 使用Common.Logging+log4net规范日志管理【转载】

    使用Common.Logging+log4net规范日志管理   Common.Logging+(log4net/NLog/) common logging是一个通用日志接口,log4net是一个强大 ...

  9. Logging from multiple processes using log4net

    When logging with log4net to a file (using the FileAppender), the FileAppender is holding an exclusi ...

随机推荐

  1. ubantu16.04+mxnet +opencv+cuda8.0 环境搭建

    ubantu16.04+mxnet +opencv+cuda8.0 环境搭建 建议:环境搭建完成之后,不要更新系统(内核) 转载请注明出处: 微微苏荷 一 我的安装环境 系统:ubuntu16.04 ...

  2. Python ToDo List

    这是我在学习python过程中,想做又没来得及做的事情一览.最初只有寥寥几个字,我会尽力去消化,让它不会只增不减. 由于博客园奇怪的算法,明明是一篇非常没有含量的东西(连字数都没有达到),居然能荣登p ...

  3. Python爬虫进阶二之PySpider框架安装配置

    关于 首先,在此附上项目的地址,以及官方文档 PySpider 官方文档 安装 1. pip 首先确保你已经安装了pip,若没有安装,请参照 pip安装 2. phantomjs PhantomJS ...

  4. 在Mac上开启自带的Apache,httpd服务

    下面演示的是Mac自带的httpd服务 启动httpd服务 AppledeMacBook-Pro:python2_zh apple$ sudo apachectl start AppledeMacBo ...

  5. ASP.NET 给作为隐藏域的TextBox赋值之后提交表单,无响应?

    操作步骤: 给页面隐藏TextBox赋值,然后触发ASP.NET change事件,调用ASP.NET后台方法,调用后执行客户端脚本this.RegisterClientScriptBlock(Dat ...

  6. JavaScript高级程序设计-(3) 变量、作用域和内存问题

    传递参数 ECMAScript所有函数参数都是按值传递的,即使对象在函数内部修改了参数的值,原始的引用任然不变,局部对象在函数执行完毕后被销毁

  7. LeetCode 1. Two Sum

    Problem: Given an array of integers, return indices of the two numbers such that they add up to a sp ...

  8. elasticsearch-1.3.0 之索引代码粗略梳理

    elasticsearch-1.3.0 发送请求 创建 [root@centos ~]# curl -XPUT 172.16.136.159:9200/customer?pretty { " ...

  9. NAIPC-2016

    A. Fancy Antiques 爆搜+剪枝. #include <bits/stdc++.h> using namespace std ; typedef pair < int ...

  10. 根据url下载图片

    如题:在我要动手写的时候才发现不搜索根本就是写不出来,究其原因还是因为基础不扎实,由于用的少已经没有能力写出了 首先需要获取url数据流,然后写进文件里即可,仅仅两步可惜我写不出来啊跟着搜来的内容写一 ...