配置:

1:NuGet程序包 - 搜索log4net - 安装

2:配置代码

Startup文件

#region log4
        public static ILoggerRepository repository { get; set; }
        #endregion

public Startup(IConfiguration configuration)
        {
            Configuration = configuration;

#region log4配置
            repository = log4net.LogManager.CreateRepository("NETCoreRepository");
            log4net.Config.XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
            #endregion
        }

3:增加配置文件 log4net.config

<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
   <!-- This section contains the log4net configuration settings -->
   <log4net>
     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
       <layout type="log4net.Layout.PatternLayout" value="%date [%thread] %-5level %logger - %message%newline" />
     </appender>
 
     <appender name="FileAppender" type="log4net.Appender.FileAppender">
     <file value="log-file.log" />
     <appendToFile value="true" />
     <layout type="log4net.Layout.PatternLayout">
       <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
     </layout>
   </appender>

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
     <file value="D:\log4/" />   //存储路径
     <appendToFile value="true" />
     <rollingStyle value="Composite" />
     <staticLogFileName value="false" />
     <datePattern value="yyyyMMdd'.log'" />
     <maxSizeRollBackups value="10" />
     <maximumFileSize value="1MB" />
     <layout type="log4net.Layout.PatternLayout">
       <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
     </layout>
   </appender>

<!-- Setup the root category, add the appenders and set the default level -->
   <root>
     <level value="ALL" />
     <appender-ref ref="ConsoleAppender" />
     <appender-ref ref="FileAppender" />
       <appender-ref ref="RollingLogFileAppender" />
     </root>
 
   </log4net>
 </configuration>

4:编写代码

(1):

public class Log4Controller : Controller
    {
        private ILog log;
        public Log4Controller(IHostingEnvironment hostingEnv)
        {
            this.log = LogManager.GetLogger(Startup.repository.Name, typeof(Log4Controller));
        }
        // GET: /<controller>/
        public IActionResult Index()
        {
            log.Error("测试日志");
            return Content("log.Error ok");
        }
    }

5:日志级别

trace: 是追踪,就是程序推进以下,你就可以写个trace输出,所以trace应该会特别多,不过没关系,我们可以设置最低日志级别不让他输出。

debug: 调试么,我一般就只用这个作为最低级别,trace压根不用。是在没办法就用eclipse或者idea的debug功能就好了么。

info: 输出一下你感兴趣的或者重要的信息,这个用的最多了。

warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证不是有error 和warn(不算错误但是也请注意,比如以下depressed的方法)。

error: 错误信息。用的也比较多。

fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了,是不应该出现的错误么!不用那么紧张,其实就是一个程度的问题。

netcore log4相关的更多相关文章

  1. WTM 3.1发布,完美支持.netcore 3.1

    在过去的2019年,承蒙各位的厚爱,WTM从零开始一年的时间在GitHub上收获了将近1600星,nuget上的下载量累计超过10万. WTM所坚持的低码开发,快速实现的理念受到了越来越多.netco ...

  2. Log4net - 规则简介

    参考页面: http://www.yuanjiaocheng.net/CSharp/csharprumenshili.html http://www.yuanjiaocheng.net/entity/ ...

  3. Python3 与 C# 扩展之~基础衍生

      本文适应人群:C# or Python3 基础巩固 代码裤子: https://github.com/lotapp/BaseCode 在线编程: https://mybinder.org/v2/g ...

  4. Miniprofiler在swagger、vue、angular中的使用

     本篇分为以下几个部分: 1.Swagger的简单应用 2.Miniprofier的后台配置 3.跨域配置 4.在angular中显示Miniprofier 5.在vue中显示Miniprofier ...

  5. Selenium+Java完整框架搭建(2019完整版)

    一.WebDriver框架开发实战 1.框架的思想 (1)什么是框架? 框架是可以被应用开发者定制的应用骨架 (2)为什么要写框架? 提高脚本可维护性 提高编写脚本的速度 提高脚本可阅读性 (3)框架 ...

  6. Logstash实践

    转载请注明出处:https://www.cnblogs.com/shining5/p/9542710.html Logstash简介 一个开源的数据收集引擎,具有实时数据传输能力,可以统一过滤来自不同 ...

  7. 嵌入式单片机STM32应用技术(课本)

    目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...

  8. 杂谈.netcore的Buffer相关新类型

    1 文章范围 本文将.netcore新出现的与Buffer操作相关的类型进行简单分析与讲解,由于资料有限,一些见解为个人见解,可能不是很准确.这些新类型将包括BinaryPrimitives.Span ...

  9. .netcore ioc 循环依赖问题及其相关思考之DispatchProxy

    .netcore引入了ioc机制让开发人员逐步习惯从过去的各种new对象变成通过IOC框架来管理对象的生命周期.这样当我们需要某个对象的时候,我们一般在构造函数里申明该对象的接口,即可通过ioc容器创 ...

随机推荐

  1. 前端Vue 源码分析-逻辑层

    Vue 源码分析-逻辑层 预期的效果: 监听input的输入,input在输入的时候,会触发 watch与computed函数,并且会更新原始的input的数值.所以直接跟input相关的处理就有3处 ...

  2. 《剑指offer》第一个只出现一次的字符

    本题来自<剑指offer> 反转链表 题目: 思路: C++ Code: Python Code: 总结:

  3. Linux 查看负载内存

    负载   内存     1.作用 top命令用来显示执行中的程序进程,使用权限是所有用户. 2.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数 ...

  4. 一次lr异常Error: C interpreter run time error: Action.c (17): Error -- memory violation : Exception ACCESS_VIOLATION received问题分析

    今天qq群里人问我一个问题 人家的原始问题如下: 问题是为啥通过lr_save_string取不到参数值 由于别的问题,我也需要调试,但是没有环境,只能模拟场景,如下 他想将token变量换成lr中的 ...

  5. 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)

    如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...

  6. Spring以及tomcat中的Listener

    tomcat容器的listener: ServletContextListener HttpSessionListener ServletRequestListener Spring的listener ...

  7. using eclipse to write c programe

    参考:http://developer.51cto.com/art/200906/126363.htm http://www.cnblogs.com/feisky/archive/2010/03/21 ...

  8. 【C#】多数组间的取重取余

    string[] arrRate = new string[] { "a", "b", "c", "d" };//A s ...

  9. MyBatis3系列__01HelloWorld

    # MyBatis作为一个ORM框架,其重要程度不用过多介绍.下面开始一起学习吧:本博客的编程方法与MyBatis官方文档基本一致:## 1.创建一个数据库mybatis_learn以及对应的表tbl ...

  10. jade的写法

    标签直接写:p或p. 例如: p 今天自己很棒 p.今天自己很棒 则输入 <p>今天自己很棒</p> <p>今天自己很棒</p> ***jage模板记得 ...