1. log4net使用指南  (对配置解释比较全面细致,建议做完demo后多看)
  2. Log4Net使用详解(周公)——点击打开链接
  3. Log4Net使用详解(续)周公——点击打开链接
  4. 点击打开链接
  5. 点击打开链接

日志是一个正式项目布署所必备的东东, 假如没有日志, 世界会怎样?

log4net无疑是.net写日志之中的首选,看了周公的,确实比较简单,也有缺点:

  1. 文件名无法以日期格式输出,两篇文章合起来看也没有一个答案;
  2. 没有把配置文件单独出来;
  3. XmlConfiguator(xx) 这一段写在了代码中,不方便。

于是加入点自己的改造,形成此文……

步骤:

1. 创建控制台应用程序项目, 引用 log4net.dll 。

2. 在 AssemblyInfo.cs文件中添加 一行:

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

3. 在项目中添加配置文件 log4net.config, 特别注意:要如下图选择始终复制;

4. log4net.config的内容:

<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <appSettings> </appSettings> <log4net> <!--定义输出到文件中--> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--1. 文件路径,如果RollingStyle为Composite或Date,则这里设置为目录,文件名在DatePattern里设置,其他则这里要有文件名。已经扩展支持虚拟目录--> <file value="Log\" /> <!--2. 创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite--> <rollingStyle value="Composite" /> <!--3. 当RollingStyle为Composite或Date,这里设置文件名格式--> <datePattern value='yyyy-MM-dd".log"' /> <!--4. true/false,默认为true。为true时,RollingStyler的date值将无效。且为true时,需要在file里指定文件名,所有日志都会记录在这个文件里。--> <staticLogFileName value="false" /> <!--5. 当rollingStyle为Composite或Size,这里设置最大文件大小(可以KB,MB,GB为单位,默认为字节)--> <maximumFileSize value="30MB" /> <!--6. 默认值为-1。当文件超过MaximumFileSize的大小时,如果要创建新的文件来存储日志,会根据CountDirection的值来重命名文件。 大于-1的值时,file里指定的文件名会依次加上.0,.1,.2递增。 当等于或小于-1时,创建依赖于MaxSizeRollBackups参数值,创建备份日志数。--> <countDirection value="-1" /> <!--7. 备份日志数目,默认为0。在CountDirection为负数时有效。--> <maxSizeRollBackups value="-1" /> <!--8. true/false,默认为true。当文件存在时,是否在原文件上追加内容。--> <appendToFile value="true" /> <layout type="log4net.Layout.PatternLayout"> <!-- 日志起始输出 --> <header value="-----------程序开始运行----------- " /> <!-- 日志结束输出 --> <footer value="-----------程序结束运行----------- " /> <conversionPattern value="%date [%thread] %-5level [%ndc] - %message%newline" /> <conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline" /> </layout> </appender> <!--定义输出到控制台命令行中--> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <!--定义输出到windows事件中--> <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb--> <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender"> <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" /> <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" /> <!--定义各个参数--> <parameter> <parameterName value="@logDate" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date" /> </layout> </parameter> <parameter> <parameterName value="@thread" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%thread" /> </layout> </parameter> <parameter> <parameterName value="@logLevel" /> <dbType value="String" /> <size value="240" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%level" /> </layout> </parameter> <parameter> <parameterName value="@logger" /> <dbType value="String" /> <size value="240" /> <layout type=

转载于:https://www.cnblogs.com/xihong2014/p/10961943.html

Hello log4net——做一个实用好用的log4net的demo(转)相关推荐

  1. 如何做一个“实用”的图像数据集

    目录 引言 一.探究数据的"用途" 二.梳理专业的"知识" 三.数据与知识"迭代" 四.确定性能的"指标" 五.总结 鸣 ...

  2. 举个栗子!Tableau技巧(52):学做一个实用的热图日历

    这种图表我们就叫它热图日历,通过方形展示具体日期,通过颜色呈现该日期的数值多少. 通常我们可以将它用作仪表板上的筛选器,来查看月.周.日的详细情况,通过它可以很容易查看具体到每一天的情况. 那么,怎样 ...

  3. Tableau必知必会之学做一个实用的热图日历

    这种图表我们就叫它热图日历,通过方形展示具体日期,通过颜色呈现该日期的数值多少. 通常我们可以将它用作仪表板上的筛选器,来查看月.周.日的详细情况,通过它可以很容易查看具体到每一天的情况. 为方便学习 ...

  4. T4M插件放入unity后怎么找不到_【Unity俯视角射击】我们来做一个《元气骑士》的完整Demo(五)...

    哈喽大家好,我是yumir. 惯例先上成果链接: TopDownShootingGame - Unity Connect​connect.unity.com (如果链接打不开大家可以晚点再来试一下,U ...

  5. 实用typescript_从今天开始,拿起 TypeScript 做一个轮子的制造者

    前言 前端这些年发展非常迅速社区里涌现了一堆优秀的轮子比如Vue.React.Angular.jQuery.axios 等它们解决着不同领域下的问题.使用这些轮子能极大地帮助我们提升生产力有些人甚至基 ...

  6. 做一个FLASH游戏你需要掌握的东西【实用】

    做一个FLASH游戏你需要掌握的东西 作者:jianzhong 一直想着什么时间好好做一个像样点的游戏,于是刻意的开始去了解FLASHGAME的相关资料,在这里把自己在整个制作和收集过程中的一些感觉使 ...

  7. 51单片机可以做什么实用的产品?

    我用51的单片机做过不少于10款产品了. 我看到很多文章,说51已经过时了,新手没必要学习51单片机,可以直接学STM32. 我个人认为这种说法存在一定的误导,51还是有很大的市场. 很多人想从事嵌入 ...

  8. 不断审视自己,做一个长期主义者

    1.做一个长期主义者.基于长期的目标或者结果去制作决策,长期主义者相信自己的使命.愿景,笃信品格,坚持初心.一些不坚定的连续创业者其实就是短期投机者,他们很难坚持初心,没有深入某个行业,想的只是赚快钱 ...

  9. 做一个项目,平时都用到哪些工具提高效率(上)

    做一个项目,平时都用到哪些工具提高效率(上)  转载 做.NET 相关项目,Visual Studio 2008,SQL Server 2000/2005是标准的配置,但是,除此之外,还可以应用哪些工 ...

最新文章

  1. [转] mongoose学习笔记(超详细)
  2. dht11 python mysql,自己动手实现智能家居之温湿度数据采集存储(DHT11,MySql)
  3. 【采用】风控老客户续贷业务知识
  4. 【python】-- pymsql 外键
  5. Windows下用FFmpeg+nginx+rtmp搭建直播环境 实现推流、拉流(超简单教程)
  6. 从动力学角度看优化算法:一个更整体的视角
  7. vue2.x 在引用插件的时候,npm run dev跑正常 ,npm run build 报错vue-cli Unexpected token: punc (() [...
  8. Angulary应用依赖里的platform-browser
  9. c语言 b的作用,在C语言中各个标点符号的作用
  10. 数据结构(JAVA)--图
  11. 基于高光谱成像的苹果病害无损检测方法
  12. linux lite安装教程,Linux Lite第一个获得Linux 4.14 及如何安装它
  13. 拓端tecdat|【视频】R语言中的隐马尔可夫HMM模型实例
  14. 物联网中对视频远程传输解决方案
  15. Javashop B2B2C 系统之社区团购商城
  16. omnipeek无线抓包工具 Dlink 160驱动
  17. 广州目前有几家等保测评机构呢?
  18. 在二叉树中查找两个节点的最近的公共祖先节点(无回溯指针)(NCA--nearest common ancestor)
  19. 采铜:基于心理学的高效学习策略
  20. 关于部分Win10降成WIN7的安装步骤

热门文章

  1. 安卓固件修改工具_【固件升级】给力!安卓6.0以上设备均已升级BOOX OS 2.3系统...
  2. java 异常_学习Java,你需要知道这些Java异常
  3. iphone模拟器_iPhone 上玩真的 PSP 游戏,支持 iOS 13 系统
  4. 从CTF比赛真题中学习压缩包伪加密与图片隐写术
  5. js模块化与面向对象编程思考与实践
  6. .netcore2.1 使用postgresql数据库,不能实现表的CRUD问题
  7. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 记录日志
  8. Redis事务和分布式锁
  9. Linux学习笔记(单用户模式,救援模式,克隆主机,两个linux互相连接)
  10. Elasticsearch 2.3.0 重建索引