1 首先在nuGet管理器上下载Log4Net包
2 在项目的根目录下新建log4net.config 文件
3 配置log4net,具体详细配置如下:

<?xml version="1.0"?>
<configuration><configSections><!--Add Log4Net Section--><section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /></configSections><log4net><!--定义日志的输出媒介,下面定义日志以五种方式输出。也可以下面的按照一种类型或其他类型输出。--><root><!--control log level: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--><!--如果没有定义LEVEL的值,则缺省为DEBUG--><level value="ALL"/><!--文件形式记录日志--><appender-ref ref="DEBUG_FILE"/><appender-ref ref="INFO_FILE"/><appender-ref ref="ERROR_FILE"/><!--控制台显示日志--><!--<appender-ref ref="ConsoleAppender"/>--></root><appender name="RemotingAppender" type="log4net.Appender.RemotingAppender" ><sink value="tcp://localhost:8085/LoggingSink" /><lossy value="false" /><bufferSize value="95" /><onlyFixPartialEventData value="true" /></appender><!-- 此日志文件只记录debug级别的 --><appender  name="DEBUG_FILE" type="log4net.Appender.RollingFileAppender,log4net" ><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="DEBUG" /><param name="LevelMax" value="DEBUG" /></filter><!--日志的路径--><file value="log/app-log/" /><!--是否覆盖,默认是追加true--><appendToFile value="true"/><rollingStyle value="Composite"/><!--文件名称--><DatePattern value="\debu\g-yyyy-MM-dd.lo\g"></DatePattern><!--文件字符编码--><param name="Encoding" value="utf-8"/><!--设置无限备份=-1 ,最大备份数为100--><param name="MaxSizeRollBackups" value="100"/><!--每个文件的大小--><param name="MaximumFileSize" value="500KB"/><!--名称是否可以更改为false为可以更改--><param name="StaticLogFileName" value="false"/><!--保持文件扩展名一直为.log--><!--<param name="PreserveLogFileNameExtension" value="true"/>--><!--最小锁定模型以允许多个进程可以写入同一个文件--><param name="lockingModel"  type="log4net.Appender.FileAppender+MinimalLock" /><layout type="log4net.Layout.PatternLayout"><!--输出格式--><!--<param name="ConversionPattern" value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 记录类:%logger 操作者ID:%property{Operator} 操作类型:%property{Action}%n 当前机器名:%property%n当前机器名及登录用户:%username %n 记录位置:%location%n 消息描述:%property{Message}%n 异常:%exception%n 消息:%message%newline%n%n" />  --><conversionPattern value="%date [%thread] %-5level %logger %method(%line) [%property{NDC}] %message %exception %newline"/></layout><!--<layout type="log4net.Layout.PatternLayout,log4net"><param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /></layout>--></appender><!-- 此日志文件只记录info级别的 --><appender  name="INFO_FILE" type="log4net.Appender.RollingFileAppender,log4net" ><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="INFO" /><param name="LevelMax" value="INFO" /></filter><!--日志的路径--><file value="log/app-log/" /><!--是否覆盖,默认是追加true--><appendToFile value="true"/><rollingStyle value="Composite"/><!--文件名称--><DatePattern value="in\fo-yyyy-MM-dd.lo\g"></DatePattern><!--文件字符编码--><param name="Encoding" value="utf-8"/><!--设置无限备份=-1 ,最大备份数为100--><param name="MaxSizeRollBackups" value="100"/><!--每个文件的大小--><param name="MaximumFileSize" value="500KB"/><!--名称是否可以更改为false为可以更改--><param name="StaticLogFileName" value="false"/><!--保持文件扩展名一直为.log--><!--<param name="PreserveLogFileNameExtension" value="true"/>--><!--最小锁定模型以允许多个进程可以写入同一个文件--><param name="lockingModel"  type="log4net.Appender.FileAppender+MinimalLock" /><layout type="log4net.Layout.PatternLayout"><!--输出格式--><conversionPattern value="%date [%thread] %-5level %logger %method(%line) [%property{NDC}] %message %exception %newline"/></layout></appender><!-- 此日志文件只记录info级别的 --><appender  name="ERROR_FILE" type="log4net.Appender.RollingFileAppender,log4net" ><filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="ERROR" /><param name="LevelMax" value="ERROR" /></filter><!--日志的路径--><file value="log/app-log/" /><!--是否覆盖,默认是追加true--><appendToFile value="true"/><rollingStyle value="Composite"/><!--文件名称--><DatePattern value="error-yyyy-MM-dd.lo\g"></DatePattern><!--文件字符编码--><param name="Encoding" value="utf-8"/><!--设置无限备份=-1 ,最大备份数为100--><param name="MaxSizeRollBackups" value="100"/><!--每个文件的大小。只在混合方式与文件大小方式下使用,超出大小的在文件名后自动增加1重新命名--><param name="MaximumFileSize" value="500KB"/><!--名称是否可以更改为false为可以更改--><param name="StaticLogFileName" value="false"/><!--最小锁定模型以允许多个进程可以写入同一个文件--><param name="lockingModel"  type="log4net.Appender.FileAppender+MinimalLock" /><layout type="log4net.Layout.PatternLayout"><!--输出格式--><conversionPattern value="%date %-5level %logger %method(%line) [%property{NDC}] %message %exception %newline"/></layout></appender><!--定义输出到控制台命令行中--><appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"><!--<filter type="log4net.Filter.LevelRangeFilter"><param name="LevelMin" value="INFO" /></filter>--><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger %method(%line) [%property{NDC}] %message%newline"/></layout></appender><!--<logger name="Log4NetTest.LogTest"><level value="DEBUG" /><appender-ref  ref="rollingFile" /><appender-ref ref="coloredConsoleApp" /><appender-ref ref="SystemEvent" /></logger>--></log4net></configuration>

4 在AssemblyInfo.cs 类中添加配置文件引用:

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

5 测试配置是否成功:

using log4net;
using Survey;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp1
{class Program{private static readonly ILog logger = LogManager.GetLogger(typeof(Program));static void Main(string[] args){logger.Info("info");logger.Error("error");logger.Debug("debug");}}
}

最后会在xxx/ConsoleApp1\bin\Debug\log/app-log/下生成三个日志文件的话就成功了!

关于log4Net更多详细信息请参考:
log4Net使用及配置注解(整理)
非常完善的Log4net详细说明
log4Net官方例子

C# 中使用log4net 日志记录相关推荐

  1. 如何在ASP.NET Core中编写自定义日志记录提供程序

    目录 介绍 如何实现所需的接口 基础类和附件 FileLoggerProvider具体类及其附件 1. ConfigureLogging() 2. appsettings.json文件 介绍 源代码可 ...

  2. SLF4j使用、统一系统中所有的日志记录到slf4j

    SLF4j使用 在系统中使用SLF4j 开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法:给系统导入slf4的jar和logback的实现jar import ...

  3. java jee curd_Java / JEE中的有效日志记录–映射的诊断上下文

    java jee curd 这一切始于当我和一位同事坐在一起解决一些应用程序问题时,当我注意到一些有趣的事情时. 他正在合并代码,我的眼睛吸引了此类" org.apache.log4j.MD ...

  4. Java / JEE中的有效日志记录–映射的诊断上下文

    当我和一位同事坐在一起解决一些应用程序问题时,一切都开始了,当时我注意到了一些有趣的事情. 他正在合并代码,我的眼睛吸引了此类" org.apache.log4j.MDC"的注意. ...

  5. linux c 贝塞尔曲线_使用 logzero 在 Python 中进行简单日志记录 | Linux 中国

    快速了解一个方便的日志库,来帮助你掌握这个重要的编程概念.-- Ben Nuttall logzero 库使日志记录就像打印语句一样容易,是简单性的杰出代表.我不确定 logzero 的名称是否要与 ...

  6. java emr_java – EMR – 在Hadoop(和YARN)中使用自定义日志记录appender

    在我们的EMR集群中,我们使用自定义log4j-appender和log4j.properties来允许我们将日志转发到Splunk并让我们做一些魔术,提供的库和配置不知道如何操作. 在EMR 3.x ...

  7. NAS中如何查看日志记录?

    系统记录 记录TOS 系统的事件信息.TNAS 可储存10,000条事件记录,包括讯息.警告和错误. 1.输入用户名和密码登录TOS系统: 2.TOS 桌面 > 控制面板 > 系统状态 & ...

  8. linux中查看相关日志记录,linux重启查看日志及历史记录 查询原因

    linux系统文件通常在/var/log中下面是对下面常出现的文件进行解释 /var/log/message ---------------------------------------系统启动后的 ...

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

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

最新文章

  1. TIOBE 9 月编程语言排行榜发布,C++ 增速最快,C++20 的功劳?
  2. layui爱准挂更新密码静态WEB页(临时)
  3. 视觉SLAM笔记(57) 回环检测
  4. JAVA 创建学生类
  5. AJPFX分析int 和integer的区别
  6. exp导出excel oracle_OracleToExcel_Oracle导出excel数据(OracleToExcel)下载 v3.1 官方版 - 121下载站...
  7. GridView实战一:自定义分页、排序、修改、插入、删除
  8. godaddy mysql 乱码_Godaddy主机乱码的解决方法 | Godaddy美国主机中文指南
  9. select2插件设置选中值并显示的问题
  10. logrotate 对某个日志的配置
  11. 小红书种草营销的本质是什么?如何投入更有效?
  12. 台式win10怎么开启无线服务器,无线网卡怎么用? win10系统台式机安装无线网卡的详细教程...
  13. 企业实践|分布式系统可观测性之应用业务指标监控
  14. 图片中画框(C语言实现)
  15. 五万美元的年薪是如何花光的
  16. 安防监控、智慧交通 视频结构化(车辆+行人)实现方案
  17. 【贤者之路】Python/c Api 扩展解析
  18. 618“低调”谢幕,百秋尚美如何携手品牌跨越“不确定时代”?
  19. 【数字IC】深入浅出理解I2C协议
  20. tipask 问答系统 如何设置第三方一键登录

热门文章

  1. java数组为什么可以迭代吗_在迭代2D数组时,为什么循环的顺序会影响性能?
  2. mysql 存储微信昵称乱码_MYSQL 保存微信昵称特殊字符报错解决方法-设置编码集为utf8mb4的方法...
  3. eclipse php 环境及调试配置
  4. 一个题目涉及到的50个Sql语句
  5. flutter 轮播图动态加载网络图片
  6. 阿里云数加产品家族图首次亮相
  7. [Azure][PowerShell][ASM][12]ACL
  8. Mysql不能远程连接的解决方法
  9. jqGrid数据增删查改
  10. Tomcat7实现Servlet3异步请求