1、首先VS2017創建一個.Net項目,然後從Nuget中搜索並安裝log4net
2、在項目的配置文件config中做如下數據配置
首先在configuration 中添加log4net的section節點(注:<configSections>節點一定要放在configuration節點的第一個節點位置)
然後在configuration中,添加log4net節點,設置相關的日誌路徑等,完整的設置如下
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!--log4netsection-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<!--log4net相關配置-->
<log4net>
<root>
<!--控制級別,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
<!--比如定義級別爲INFO,則INFO級別向下的級別,比如DEBUG日誌將不會被記錄-->
<!--如果沒有定義LEVEL的值,則缺省爲DEBUG-->
<level value="ALL" />
<appender-ref ref="InfoAppender" />
<appender-ref ref="DebugAppender" />
<appender-ref ref="ErrorAppender" />
</root>
<!--定義輸出到文件中-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--定義文件存放位置-->
<file value="Logs\\Info\\" />
<appendToFile value="true" />
<!--按照何種方式產生多個日誌文件(日期[Date],文件大小[Size],混合[Composite])-->
<rollingStyle value="Date" />
<!--這是按日期產生文件夾-->
<datePattern value="yyyyMMdd'.txt'" />
<!--是否只寫到一個文件中-->
<staticLogFileName value="false" />
<!--保留的log文件數量 超過此數量後 自動刪除之前的 好像只有在 按Size分割時有效 設定值value="-1"爲不限文件數-->
<param name="MaxSizeRollBackups" value="100" />
<!-- layout 控制Appender的輸出格式,也可以是xml 一個Appender只能是一個layout-->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%t]%-5p %c - %m%n" />
</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">
<!--定義文件存放位置-->
<file value="Logs\\Debug\\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'.txt'" />
<staticLogFileName value="false" />
<param name="MaxSizeRollBackups" value="100" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%t]Debug %c - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!--定義文件存放位置-->
<file value="Logs\\Error\\" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'.txt'" />
<staticLogFileName value="false" />
<param name="MaxSizeRollBackups" value="100" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%t]%-5p %c - %n%m%n%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
</log4net>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.13.0" newVersion="1.2.13.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
3、在項目中的Properties下的AssemblyInfo.cs文件中添加代碼
//log4配置
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
4、以上設置完成後,然後在啓動項目後,會自動在項目的目錄下創建對應的日誌文件夾
調用示例
ILog log=LogManager.GetLogger("Logger");
log.Info(logMsg);