ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.Net Core 实践 - 使用log4net记录日志(1)

2019-07-24 13:02:10  阅读:222  来源: 互联网

标签:log4net Core gt name value lt Net 日志


原文:.Net Core 实践 - 使用log4net记录日志(1)

demo地址:https://github.com/PuzzledAlien/log4net_demo

准备

  • log4net 最新版本是2.0.8
  • VS2017
  • .Net Core 2.2
  • 测试电脑配置 windows10 64位 4核CPU 16G内存

log4net官网引导文档 :http://logging.apache.org/log4net/release/manual/introduction.html

配置和代码

log4net.config配置如下

lt;?xml version="1.0" encoding="utf-8" ?gt;
lt;configurationgt;
  lt;configSectionsgt;
    lt;section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/gt;
  lt;/configSectionsgt;
  lt;log4netgt;
    lt;appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"gt;
      lt;!--日志路径--gt;
      lt;param name= "File" value= ".\App_Log\servicelog\"/gt;
      lt;!--是否是向文件中追加日志--gt;
      lt;param name= "AppendToFile" value= "true"/gt;
      lt;!--log保留天数--gt;
      lt;param name= "MaxSizeRollBackups" value= "10"/gt;
      lt;!--每个log文件最大是2M,如果超过2M将重新创建一个新的log文件,并将原来的log文件备份。--gt;
      lt;maximumFileSize value="2MB" /gt;
      lt;!--日志文件名是否是固定不变的--gt;
      lt;param name= "StaticLogFileName" value= "false"/gt;
      lt;!--日志文件名格式为:2008-08-31-12.log--gt;
      lt;param name= "DatePattern" value= "yyyy-MM-dd-HH-mmamp;quot;.read.logamp;quot;"/gt;
      lt;!--日志根据日期滚动--gt;
      lt;param name= "RollingStyle" value= "Date"/gt;
      lt;layout type="log4net.Layout.PatternLayout"gt;
        lt;param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n %loggername" /gt;
      lt;/layoutgt;
      lt;lockingModel type="log4net.Appender.FileAppender+MinimalLock" /gt;
    lt;/appendergt;
    lt;!-- 控制台前台显示日志 --gt;
    lt;appender name="ManagedColoredConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender"gt;
      lt;mappinggt;
        lt;level value="ERROR" /gt;
        lt;foreColor value="Red" /gt;
      lt;/mappinggt;
      lt;mappinggt;
        lt;level value="Info" /gt;
        lt;foreColor value="Green" /gt;
      lt;/mappinggt;
      lt;mappinggt;
        lt;level value="DEBUG" /gt;
        lt;foreColor value="Blue" /gt;
      lt;/mappinggt;
      lt;mappinggt;
        lt;level value="WARN" /gt;
        lt;foreColor value="Yellow" /gt;
      lt;/mappinggt;
      lt;layout type="log4net.Layout.PatternLayout"gt;
        lt;conversionPattern value="%n%date{HH:mm:ss,fff} [%-5level] %m" /gt;
      lt;/layoutgt;
      lt;filter type="log4net.Filter.LevelRangeFilter"gt;
        lt;param name="LevelMin" value="DEBUG" /gt;
        lt;param name="LevelMax" value="Fatal" /gt;
      lt;/filtergt;
    lt;/appendergt;
    lt;rootgt;
      lt;!--(高) OFF gt; FATAL gt; ERROR gt; WARN gt; INFO gt; DEBUG gt; ALL (低) --gt;
      lt;level value="ALL" /gt;
      lt;appender-ref ref="ManagedColoredConsoleAppender"/gt;
      lt;appender-ref ref="RollingLogFileAppender"/gt;
    lt;/rootgt;
  lt;/log4netgt;
lt;/configurationgt;

添加引用

using log4net;
using log4net.Config;
using log4net.Repository;

代码如下:

        private static ILoggerRepository _loggerRepository;
        static void Main(string[] args)
        {
            _loggerRepository = LogManager.CreateRepository("DotNetCoreConsole");
            XmlConfigurator.ConfigureAndWatch(_loggerRepository, new FileInfo("log4net.config"));
            var log = LogManager.GetLogger(_loggerRepository.Name, typeof(Program));

            const int numberOfCycles = 20000;

            var sw = Stopwatch.StartNew();
            for (var i = 0; i lt; numberOfCycles; i++)
            {
                log.InfoFormat("testNum: {0} ", i);
            }
            sw.Stop();

            Console.WriteLine();
            Console.WriteLine("Ellapsed: {0}, numPerSec: {1}", sw.ElapsedMilliseconds, numberOfCycles / (sw.ElapsedMilliseconds / (double)1000));

            Console.WriteLine("Hello World!");

            Console.ReadKey();
        }

执行结果:
本地写log文本日志和Console打印日志的时间14720毫秒 一秒钟写日志1359条

Ellapsed: 14720, numPerSec: 1358.69565217391

标签:log4net,Core,gt,name,value,lt,Net,日志
来源: https://www.cnblogs.com/lonelyxmas/p/11237300.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有