zoukankan      html  css  js  c++  java
  • NET CORE引用log4net日志文件的应用

    日志作为快速定位程序问题的主要手段,日志几乎是所有程序都必须拥有的一部分,下面我们就看下NET CORE环境下怎么使用log4net:

    1.下载log4net.dll和Microsoft.Extensions.Logging.Log4Net.AspNetCore.dll文件 ;

    2.创建自己的项目

    3.在自己项目下的引用log4net.dll和Microsoft.Extensions.Logging.Log4Net.AspNetCore.dll文件   ;

    Nuget引入log4net/ Microsoft.Extensions.Logging.Log4Net.AspNetCore:如下

    鼠标右击“依赖性”--“管理NuGet程序包”,然后选择“浏览”输入“LogNet”搜索,安装log4net/ Microsoft.Extensions.Logging.Log4Net.AspNetCore如下图:

    4.添加log4net.Config配置文件,下面贴出配置信息,大家直接复制log4net.Config文件内容就可以了:

    贴的代码

    <?xml version="1.0" encoding="utf-8"?>
    <log4net>
        <!-- 日志文件配置-->
        <root>
            <level value="ALL"/>
            <!--按文件存储日志-->
            <appender-ref ref="DebugAppender"/>
            <appender-ref ref="InfoAppender"/>
            <appender-ref ref="ErrorAppender"/>
        </root>
        <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
            <param name="File" value=".\Logs\Error\"/>
            <!--日志记录的存在路-->
            <param name="AppendToFile" value="true"/>
            <!--为true就表示日志会附加到文件,为false,则会重新创建一个新文件-->
            <param name="MaxSizeRollBackups" value="100"/>
            <!--创建最大文件数-->
            <param name="maximumFileSize" value="10MB" />
            <!--文件大小-->
            <param name="maximumFileSize" value="10MB"/>
            <!--是否只写到一个文件中-->
            <param name="StaticLogFileName" value="false"/>
            <!--是否指定文件名-->
            <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
            <!--创建新文件的方式,可选为Size(按文件大小),Date(按日期),Once(每启动一次创建一个文件),Composite(按日期及文件大小),默认为Composite-->
            <param name="RollingStyle" value="Composite"/>
            <layout type="log4net.Layout.PatternLayout">
                <!--输出内容布局-->
                <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
                <!--method会影响性能-->
            </layout>
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="ERROR"/>
                <param name="LevelMax" value="ERROR"/>
            </filter>
        </appender>
        <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
            <param name="File" value=".\Logs\Info\"/>
            <param name="AppendToFile" value="true"/>
            <param name="MaxSizeRollBackups" value="100"/>
            <param name="maximumFileSize" value="10MB" />
            <param name="StaticLogFileName" value="false"/>
            <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
            <param name="RollingStyle" value="Composite"/>
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
            </layout>
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="INFO"/>
                <param name="LevelMax" value="INFO"/>
            </filter>
        </appender>
        <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
            <param name="File" value=".\Logs\Debug\"/>
            <param name="AppendToFile" value="true"/>
            <param name="MaxSizeRollBackups" value="100"/>
            <param name="maximumFileSize" value="10MB" />
            <param name="StaticLogFileName" value="false"/>
            <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
            <param name="RollingStyle" value="Composite"/>
            <layout type="log4net.Layout.PatternLayout">
                <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
            </layout>
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="DEBUG"/>
                <param name="LevelMax" value="DEBUG"/>
            </filter>
        </appender>
    </log4net>
    View Code

    注意:生成的时候如果根目录下没有log4net.Config,需要log4net.Config右键属性,选择“复制到输出目录”修改为“始终复制”,如下图:

    5.在Program.cs文件下添加配置代码:

    public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                .ConfigureLogging(logging =>
                {
                    logging.AddFilter("System", LogLevel.Warning);
                    logging.AddFilter("Microsoft", LogLevel.Warning);
                    logging.AddLog4Net();
                })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

    其中红色部分是添加的代码,

    logging.AddLog4Net():添加应用Log4Net日志:

    如果想过滤系统日志等可以添加如下两句代码:

    logging.AddFilter("System", LogLevel.Warning);

    logging.AddFilter("Micrisoft", LogLevel.Warning);

    6.在需要打日志的文件里引用using Microsoft.Extensions.Logging,然后添加Ilog变量就可以使用日志功能,如下图:

    下面是打出的日志文件:

     至此NET CORE下引用log4net文件我想你已经都会用了,希望对你有帮助。

    最后最后最后,重要的事情说三遍,来着是客,如果您觉得好就推荐或评论下,觉得不好希望能得到您的建议,继续改善.

     

  • 相关阅读:
    Elasticsearch集群优化实战
    Elasticsearch跨集群搜索(Cross Cluster Search)
    Elasticsearch集群运维
    Elasticsearch冷热集群搭建
    分布式系统事务一致性
    使用Vertx重构系统小结
    ThreadLocal原理分析与使用场景
    使用Vertx构建微服务
    使用 Python & Flask 实现 RESTful Web API
    Golang简单工厂方法demo
  • 原文地址:https://www.cnblogs.com/sxw117886/p/13665913.html
Copyright © 2011-2022 走看看