C# log4net 配置


安裝log4net

項目 - 管理Nuget程序包,在瀏覽框中輸入 log4net - 回車 - 選擇 log4net - 安裝。

添加log4net.config

在工程目錄下添加log4net.config文件, 設置log4net.config的文件屬性,自動把log4net.config的內容復制到.exe文件所在的目錄

log4net.config源碼


修改AssemblyInfo.cs

在工程 - Properties - AssemblyInfo.cs文件中新增如下一行代碼:

 

使用


 

<?xml version="1.0" encoding="utf-8" ?>
<!--
       log4.net 官網,https://logging.apache.org/log4net/    看官方文檔
       C# 寫法
       ////////////////這個配置記錄所有日志
       <root>
            <level value="ALL" />
            <appender-ref ref="SysAppender" />
       </root>
       ////////////////
        public static readonly log4net.ILog logInfo = log4net.LogManager.GetLogger("mLog");
        public static readonly log4net.ILog defined = log4net.LogManager.GetLogger("defined");
        
            logInfo.Info("11");
            logInfo.Error("22");
            logInfo.Debug("33");

            defined.Info("44");
            defined.Error("55");
            defined.Debug("66");
--> 
<configuration>
    <configSections>
        <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
    </configSections>
    <!--log4net配置文件-->
    <!-- 。。。。。。。。。。。控制級別,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF。。。。。。。。。。。 -->
    <log4net>
        <!-- <root>實際上就是一個根logger,所有其它logger都默認繼承它,如果配置文件里沒有顯式定義,則框架使用根日志中定義的屬性-->
        <root>
            <level value="ALL" />
            <appender-ref ref="SysAppender" /><!--記錄到哪個介質中去-->
        </root>

        <!--log-->
        <logger name="mLog">
            <level value="ALL"/>
            <appender-ref ref="InfoAppender"/>
            <appender-ref ref="ErrorAppender"/>
            <appender-ref ref="ConsoleAppender"/>
        </logger>

        <!--自定義的log-->
        <logger name="defined">
            <level value="ALL" />
            <appender-ref ref="defined"/>
        </logger>

        <!--根記錄log-->
        <appender name="SysAppender" type="log4net.Appender.RollingFileAppender">
            <!--日志路徑-->
            <File value="log/log_SysAppender.txt"/>
            <!--是否是向文件中追加日志-->
            <AppendToFile value="true"/>
            <!--創建新文件的方式-->
            <RollingStyle value="Size"/>
            <!--log文件大小-->
            <MaximumFileSize value="5M"/>
            <!--備份日志數目-->
            <MaxSizeRollBackups value="30"/>
            <!--日志文件名是否是固定不變的-->
            <StaticLogFileName value="true"/>
            <!--記錄日志寫入文件時,不鎖定文本文件,防止多線程時不能寫Log,官方說線程非安全-->
            <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
            <!--輸出格式-->
            <layout type="log4net.Layout.PatternLayout">
                <!--日期 [級別]-->
                <conversionPattern value="%d [%-5p] [%t%] -%m%n"/>
            </layout>
            <!--控制器,只記錄級別在INFO-INFO之間的信息-->
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="ALL" />
                <param name="LevelMax" value="OFF" />
            </filter>
        </appender>
        
        <!--運行狀態信息-->
        <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
            <!--日志路徑-->
            <File value="log/log_info.txt"/>
            <!--是否是向文件中追加日志-->
            <AppendToFile value="true"/>
            <!--創建新文件的方式-->
            <RollingStyle value="Size"/>
            <!--log文件大小-->
            <MaximumFileSize value="5M"/>
            <!--備份日志數目-->
            <MaxSizeRollBackups value="30"/>
            <!--日志文件名是否是固定不變的-->
            <StaticLogFileName value="true"/>
            <!--記錄日志寫入文件時,不鎖定文本文件,防止多線程時不能寫Log,官方說線程非安全-->
            <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
            <!--輸出格式-->
            <layout type="log4net.Layout.PatternLayout">
                <!--日期 [級別]-->
                <conversionPattern value="%d [%-5p] [%t%] -%m%n"/>
            </layout>
            <!--控制器,只記錄級別在INFO-INFO之間的信息-->
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="INFO" />
                <param name="LevelMax" value="ERROR" />
            </filter>
        </appender>
        
        <!--運行錯誤信息-->
        <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
            <!--日志路徑-->
            <File value="log/log_error.txt"/>
            <!--是否是向文件中追加日志-->
            <AppendToFile value="true"/>
            <!--創建新文件的方式-->
            <RollingStyle value="Size"/>
            <!--log文件大小-->
            <MaximumFileSize value="5M"/>
            <!--備份日志數目-->
            <MaxSizeRollBackups value="30"/>
            <!--日志文件名是否是固定不變的-->
            <StaticLogFileName value="true"/>
            <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
            <!--輸出格式-->
            <layout type="log4net.Layout.PatternLayout">
                <!--輸出格式-->
                <conversionPattern value="%d [%-5p] [%t%] -%m%n"/>
            </layout>
            <!--控制器,只記錄級別在WARN-FATAL之間的信息-->
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="WARN" />
                <param name="LevelMax" value="ERROR" />
            </filter>
        </appender>

        <!--控制台-->
        <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%d %-5p %c - %m%n"/>
            </layout>
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="INFO" />
                <param name="LevelMax" value="ERROR" />
            </filter>
        </appender>

        <!--自定義信息-->
        <appender name="defined" type="log4net.Appender.RollingFileAppender">
            <!--日志路徑-->
            <File value="log/log_defined.txt"/>
            <!--是否是向文件中追加日志-->
            <AppendToFile value="true"/>
            <!--創建新文件的方式-->
            <RollingStyle value="Size"/>
            <!--log文件大小-->
            <MaximumFileSize value="5M"/>
            <!--備份日志數目-->
            <MaxSizeRollBackups value="30"/>
            <!--日志文件名是否是固定不變的-->
            <StaticLogFileName value="true"/>
            <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
            <!--輸出格式-->
            <layout type="log4net.Layout.PatternLayout">
                <!--輸出格式-->
                <conversionPattern value="%d [%-5p] [%t%] -%m%n"/>
            </layout>
            <!--控制器,只記錄級別在WARN-FATAL之間的信息-->
            <filter type="log4net.Filter.LevelRangeFilter">
                <param name="LevelMin" value="INFO" />
                <param name="LevelMax" value="ERROR" />
            </filter>
        </appender>

    </log4net>
</configuration>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM