一、用法

1、引入包:https://www.nuget.org/packages/log4net/

2、Main函数

  1. using System;
  2. using System.IO;
  3. using log4net;
  4. using log4net.Config;
  5.  
  6. namespace Log4NetDemo
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. var repository = LogManager.CreateRepository("NETCoreRepository");
  13. XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
  14. var log = LogManager.GetLogger("NETCoreRepository", typeof(Program));
  15.  
  16. log.Info("this is a info.");
  17. log.Error("this is an error:", new Exception("this is error."));
  18. log.Fatal("this is a fatal.");
  19. log.Warn("this is a warn");
  20. Console.WriteLine("finish.");
  21. }
  22. }
  23. }

  如果不想创建Repository的话,也可以写个工具类,统一在名称空间上备注完成。

  1. using log4net;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6.  
  7. [assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = false)]
  8. namespace MyProj.Utils.Log
  9. {
  10. public class LogUtils
  11. {
  12. private ILog log = LogManager.GetLogger(typeof(LogUtils));
  13.  
  14. public void Debug(object message) => log.Debug(message);
  15. public void Debug(object message, Exception exception) => log.Debug(message, exception);
  16. public void DebugFormat(string format, params object[] args) => log.DebugFormat(format, args);
  17. public void DebugFormat(string format, object arg0) => log.DebugFormat(format, arg0);
  18. public void DebugFormat(string format, object arg0, object arg1, object arg2) => log.DebugFormat(format, arg0, arg1, arg2);
  19. public void DebugFormat(string format, object arg0, object arg1) => log.DebugFormat(format, arg0, arg1);
  20. public void Error(object message) => log.Error(message);
  21. public void Error(object message, Exception exception) => log.Error(message, exception);
  22. public void ErrorFormat(string format, object arg0, object arg1, object arg2) => log.ErrorFormat(format, arg0, arg1, arg2);
  23. public void ErrorFormat(string format, object arg0, object arg1) => log.ErrorFormat(format, arg0, arg1);
  24. public void ErrorFormat(string format, object arg0) => log.ErrorFormat(format, arg0);
  25. public void ErrorFormat(string format, params object[] args) => log.ErrorFormat(format, args);
  26. public void Fatal(object message) => log.Fatal(message);
  27. public void Fatal(object message, Exception exception) => log.Fatal(message, exception);
  28. public void FatalFormat(string format, object arg0, object arg1, object arg2) => log.FatalFormat(format, arg0, arg1, arg2);
  29. public void FatalFormat(string format, object arg0) => log.FatalFormat(format, arg0);
  30. public void FatalFormat(string format, params object[] args) => log.FatalFormat(format, args);
  31. public void FatalFormat(string format, object arg0, object arg1) => log.FatalFormat(format, arg0, arg1);
  32. public void Info(object message, Exception exception) => log.Info(message, exception);
  33. public void Info(object message) => log.Info(message);
  34. public void InfoFormat(string format, object arg0, object arg1, object arg2) => log.InfoFormat(format, arg0, arg1, arg2);
  35. public void InfoFormat(string format, object arg0, object arg1) => log.InfoFormat(format, arg0, arg1);
  36. public void InfoFormat(string format, object arg0) => log.InfoFormat(format, arg0);
  37. public void InfoFormat(string format, params object[] args) => log.InfoFormat(format, args);
  38. public void Warn(object message) => log.Warn(message);
  39. public void Warn(object message, Exception exception) => log.Warn(message, exception);
  40. public void WarnFormat(string format, object arg0, object arg1) => log.WarnFormat(format, arg0, arg1);
  41. public void WarnFormat(string format, object arg0) => log.WarnFormat(format, arg0);
  42. public void WarnFormat(string format, params object[] args) => log.WarnFormat(format, args);
  43. public void WarnFormat(string format, object arg0, object arg1, object arg2) => log.WarnFormat(format, arg0, arg1, arg2);
  44. }
  45. }

3、新建一个log4net.config配置文件,并设置输出到程序目录下。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <configuration status="ON">
  4. <log4net>
  5. <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
  6. <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
  7. </appender>
  8. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  9. <file value="logs/" />
  10. <appendToFile value="true" />
  11. <rollingStyle value="Composite" />
  12. <staticLogFileName value="false" />
  13. <datePattern value="yyyyMMdd'.log'" />
  14. <maxSizeRollBackups value="10" />
  15. <maximumFileSize value="1MB" />
  16. <layout type="log4net.Layout.PatternLayout">
  17. <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  18. </layout>
  19. </appender>
  20. <root level="ALL">
  21. <appender-ref ref="ConsoleAppender" />
  22. <appender-ref ref="RollingLogFileAppender" />
  23. </root>
  24. </log4net>
  25. </configuration>

4、效果:

C#中使用log4net框架做日志输出的更多相关文章

  1. MVC 中使用log4net 打印重复日志解决方法

    最近在项目中引用log4net 来打印日志,会发现在同一时间点 打印重复记录: 详见图

  2. Shell 从日志文件中选择时间段内的日志输出到另一个文件

    Shell 从日志文件中选择时间段内的日志输出到另一个文件 情况是这样的,某系统的日志全部写在一个日志文件内,所以这个文件非常大,非常长,每次查阅的时候非常的不方便.所以,相关人员希望能够查询某个时间 ...

  3. asp.net Web项目中使用Log4Net进行错误日志记录

      使用log4net可以很方便地为应用添加日志功能.应用Log4net,开发者可以很精确地控制日志信息的输出,减少了多余信息,提高了日志记录性能.同时,通过外部配置文件,用户可以不用重新编译程序就能 ...

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

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

  5. asp.net mvc中加入log4net记录错误日志

    直接上代码示例:https://share.weiyun.com/aff36f2547514cfefe129ebb8ccb28ef 首先添加加log4net的dll,推荐用nuget.... 贴上配置 ...

  6. 如何在通用权限管理系统中集成log4net日志功能

    开发人员都知道,在系统运行中要记录各种日志,自己写一个日志功能,无论是在效率还是功能扩展上来说都不是很好,目前大多用的是第三方的日志系统,其中一个非常有名,用的最多的就是log4net.下面是关于这个 ...

  7. C#中四步轻松使用log4net记录本地日志

    在这里,记录我在项目中使用log4net记录本地日志的步骤.在不会之前感觉很难,很神秘,一旦会了之后其实没那么难.其实所有的事情都是一样的,下面我就分享一下我使用log4Net的经验. 第一步:首先从 ...

  8. C#中四步轻松使用log4net记录本地日志(WPF有点小区别)

    在这里,记录我在项目中使用log4net记录本地日志的步骤.在不会之前感觉很难,很神秘,一旦会了之后其实没那么难.其实所有的事情都是一样的,下面我就分享一下我使用log4Net的经验. 第一步:首先从 ...

  9. ASP.NET MVC中Log4Net记录错误日志的使用

    第一.在管理NuGet程序包 =>下载 Log4Net 第二.在web.config配置Log4Net 1:在<configuration>节点下 <configSection ...

随机推荐

  1. python+selenium十三:破解简单的图形验证码

    此方法可破解简单的验证码,如: 注:中文识别正在寻找办法 安装: 1.python3 2.Pillow 3.pytesseract 4.tesseract-ocr    下载地址:https://pa ...

  2. python+selenium十二:一个输入框双层input标签

    先点击第一个,再对第二个进行操作,否则操作失败 driver.find_element_by_css_selector(".pwd").click()driver.find_ele ...

  3. 基于GTID环境的数据恢复

    下面说一个线上环境的数据恢复案例,线上环境误操作的事情,随时都有可能发生的,这时候运维DBA或者DBA会想,没人会傻到把数据库干掉的吧?又或者没有会闲得蛋痛删除了几条数据又想恢复这么无聊吧?适适这样的 ...

  4. Javascript中的函数(三)

    一:概述 函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解.JavaScript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的.通过函数对象的性质 ...

  5. 7za的压缩与解压

    2.1 解压缩7z文件 7za x phpMyAdmin-3.3.8.1-all-languages.7z -r -o./ 参数含义: x  代表解压缩文件,并且是按原始目录树解压(还有个参数 e 也 ...

  6. mongodb 备份

    本篇文章来自于阿里云技术专家郑涔(明俨)在2018年<Redis.MongoDB.HBase大咖直播大讲堂>技术直播峰会中的分享,该分享整体由四个部分构成: 1.MongoDB备份恢复 2 ...

  7. Spark学习入门

    Spark 是一种“One Stack to rule them all”通用的大数据计算框架,期望使用一个技术栈就完美地 解决大数据领域的各种计算任务. Spark特点:速度快.容易上手开发.超强的 ...

  8. BZOJ1297 [SCOI2009]迷路 矩阵乘法

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1297 题意概括 有向图有 N 个节点,从节点 0 出发,他必须恰好在 T 时刻到达节点 N-1. ...

  9. vi中批量加注释

    用v进入virtual模式 按Control+v(win下面ctrl+q)进入列模式 上下键来进行选择 I进行输入(shift+i) 按两次ese键

  10. 098实战 Job的调度

    一:介绍 1.job调度 容量调度:Apache Hadoop的默认方式 公平调度:CDH版本的Hadoop的默认方式 2.公平调度 是一种资源分配方式,在yarn的整个生命周期中,所有的applic ...