使用步骤:

1. 添加 log4Net 引用

       在解决方案管理器视图中的目标项目上右键  -> 管理 NuGet 程序包;

       添加 log4Net 包,如下图所示:

Log4Net 使用

 

2. 添加 Log4Net 配置文件

      添加示例配置文件 log4net.config(文件名随意),并更改该文件的属性。如下图所示:

Log4Net 使用      Log4Net 使用

      示例文件 log4net.config 具体内容,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <!-- 1. 添加 log4net 配置的节点声明代码-->
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler"/>
    </configSections>
    
    <!--2. log4net 配置的核心代码-->
    <log4net>
        <!--日志输出级别-->
        <root>
            <level value="ALL"/>
            <appender-ref ref="DebugLogFileAppender"/>
            <appender-ref ref="ErrorLogFileAppender"/>
            <appender-ref ref="ConsoleAppender"/>
        </root>

        <!--调试日志输出-->
        <appender name="DebugLogFileAppender"
                  type="log4net.Appender.RollingFileAppender">
            <StaticLogFileName value="false"/>                                    <!--动态生成文件名-->
            <file value="Logs\Log4NetDemo_"/>                                    <!--文件名(带路径)的固定部分-->
            <DatePattern value="yyyy-MM-dd'.log'"/>                                <!--文件名(带路径)的动态部分-->
            <Encoding value="utf-8"/>                                            <!--文件编码-->
            <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>    <!--使用最小锁定模型,以允许多个进程可以写入同一个文件 -->
            <appendToFile value="true"/>                                        <!--内容是否追加到文件末尾(如果为 False 则覆盖)-->
            <RollingStyle value="Composite"/>
            <MaximumFileSize value="10MB"/>                                        <!--单个文件最大大小-->
            <MaxSizeRollBackups value="10"/>                                    <!--备份文件的个数(保留10个最近的日志,会循环覆盖)-->
            <layout type="log4net.Layout.PatternLayout">                        <!--输出格式-->
                <ConversionPattern value="Level: %-5p 
                                   %nThread ID: %t
                                   %nTime: %d
                                   %nClass: %c
                                   %nFile: %F   Line: %L
                                   %nMessage: %m
                                   %n%exception
                                   %n"/>
            </layout>
            <filter type="log4net.Filter.LevelRangeFilter">
                <levelMin value="DEBUG" />
                <levelMax value="FATAL" />
            </filter>
        </appender>

        <!--错误日志输出-->
        <appender name="ErrorLogFileAppender"
                  type="log4net.Appender.RollingFileAppender">
            <StaticLogFileName value="false"/>                                    <!--动态生成文件名-->
            <file value="Logs\Error Logs\Log4NetDemo_Error_"/>                    <!--文件名(带路径)的固定部分-->
            <DatePattern value="yyyy-MM-dd'.log'"/>                                <!--文件名(带路径)的动态部分-->
            <Encoding value="utf-8"/>                                            <!--文件编码-->
            <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>    <!--使用最小锁定模型,以允许多个进程可以写入同一个文件 -->
            <appendToFile value="true"/>                                        <!--内容是否追加到文件末尾(如果为 False 则覆盖)-->
            <RollingStyle value="Composite"/>
            <MaximumFileSize value="10MB"/>                                        <!--单个文件最大大小-->
            <MaxSizeRollBackups value="10"/>                                    <!--备份文件的个数(保留10个最近的日志,会循环覆盖)-->
            <layout type="log4net.Layout.PatternLayout">                        <!--输出格式-->
                <ConversionPattern value="Level: %-5p 
                                   %nThread ID: %t
                                   %nTime: %d
                                   %nClass: %c
                                   %nFile: %F   Line: %L
                                   %nMessage: %m
                                   %n%exception
                                   %n"/>
            </layout>
            <filter type="log4net.Filter.LevelRangeFilter">
                <levelMin value="ERROR" />
                <levelMax value="FATAL" />
            </filter>
        </appender>

        <!--控制台输出-->
        <appender name="ConsoleAppender"
                  type="log4net.Appender.ColoredConsoleAppender">
            <mapping>
                <level value="ERROR"/>
                <foreColor value ="white"/>
                <backColor value ="Red,HighIntensity"/>
            </mapping>
            <mapping>
                <level value="DEBUG"/>
                <backColor value ="Green"/>
            </mapping>
            <layout type="log4net.Layout.PatternLayout">
                <ConversionPattern value="Log Level: %-5level%n%date thread[%t] %c%nMessage: %m%n%exception%n"/>
            </layout>
        </appender>
        
    </log4net>
</configuration>
View Code

相关文章:

  • 2021-07-01
  • 2021-08-25
  • 2021-12-18
猜你喜欢
  • 2021-08-02
  • 2021-12-06
  • 2022-02-16
  • 2021-06-11
  • 2021-10-20
  • 2021-08-10
  • 2021-10-21
相关资源
相似解决方案