C#使用log4net打日志

首先打開vs,右擊解決方案,點擊管理解決方案的Nuget包管理

然後我們點擊瀏覽,搜索log4net,進行安裝

然後我們需要新建一個名為log4net.config的配置文件,在配置文件中,加入以下代碼

	<configSections>
		<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
	</configSections>
	<log4net>
		<!--錯誤日志-->
		//
		<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
			<!-- 日志文件存放位置,可以為絕對路徑也可以為相對路徑 -->
			<file value="log\\LogError\\" />
			<!--是否支持分割文件-->
			<appendToFile value="true" />
			<!--日志文件的記錄形式-->
			<rollingStyle value="Date" />
			<!-- 日志文件的命名規則 -->
			<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
			<!-- 當將日期作為日志文件的名字時,必須將staticLogFileName的值設置為false -->
			<staticLogFileName value="false" />
			<!--當日志文件達到MaxFileSize大小,就自動創建備份文件。-->
			<param name="MaxSizeRollBackups" value="100" />
			<!--日志文件的佈局格式-->
			<layout type="log4net.Layout.PatternLayout">
				<!--每條日志末尾的文字說明-->
				<!--輸出格式-->
				<!--樣例:2008-03-26 13:42:32,111 [10] INFO  Log4NetDemo.MainClass [(null)] - info-->
				<conversionPattern value="%newline %n記錄時間:%date %n線程ID:[%thread] %n日志級別:  %-5level %n錯誤描述:%message%newline %n" />
			</layout>
		</appender>
 
		<!--Info日志-->
		<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
			<param name="File" value="Log\\LogInfo\\" />
			<param name="AppendToFile" value="true" />
			<param name="MaxFileSize" value="10240" />
			<param name="MaxSizeRollBackups" value="100" />
			<param name="StaticLogFileName" value="false" />
			<param name="DatePattern" value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
			<param name="RollingStyle" value="Date" />
			<layout type="log4net.Layout.PatternLayout">
				<conversionPattern value="%newline %n記錄時間:%date %n線程ID:[%thread] %n日志級別:  %-5level %n日志描述:%message%newline %n" />
			</layout>
		</appender>
 
		<!--監控日志-->
		<appender name="MonitorAppender" type="log4net.Appender.RollingFileAppender">
			<param name="File" value="Log\\LogMonitor\\" />
			<param name="AppendToFile" value="true" />
			<param name="MaxFileSize" value="10240" />
			<param name="MaxSizeRollBackups" value="100" />
			<param name="StaticLogFileName" value="false" />
			<param name="DatePattern" value="yyyy\\yyyyMM\\yyyyMMdd'.txt'" />
			<param name="RollingStyle" value="Date" />
			<layout type="log4net.Layout.PatternLayout">
				<conversionPattern value="%newline %n記錄時間:%date %n線程ID:[%thread] %n日志級別:  %-5level %n跟蹤描述:%message%newline %n" />
			</layout>
		</appender>
 
		<!--Error日志-->
		<logger name="LogError">
			<level value="ERROR" />
			<appender-ref ref="RollingLogFileAppender" />
		</logger>
 
		<!--Info日志-->
		<logger name="LogInfo">
			<level value="INFO" />
			<appender-ref ref="InfoAppender" />
		</logger>
 
		<!--監控日志-->
		<logger name="LogMonitor">
			<level value="Monitor" />
			<appender-ref ref="MonitorAppender" />
		</logger>
	</log4net>

更改配置文件的"復制到輸出目錄"這個屬性為"始終復制"

 接下來我們找到AssemblyInfo.cs這個類,在這個類中加入一行代碼

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]

 然後在我們項目文件下新建一個名為LoggerHelper的類,代碼如下

public class LoggerHelper
    {
        private static readonly log4net.ILog LogInfo = log4net.LogManager.GetLogger("LogInfo");
 
        private static readonly log4net.ILog LogError = log4net.LogManager.GetLogger("LogError");
 
        private static readonly log4net.ILog LogMonitor = log4net.LogManager.GetLogger("LogMonitor");
 
        /// <summary>
        /// 記錄Error日志
        /// </summary>
        /// <param name="errorMsg"></param>
        /// <param name="ex"></param>
        public static void Error(string errorMsg, Exception ex = null)
        {
            if (ex != null)
            {
                LogError.Error(errorMsg, ex);
            }
            else
            {
                LogError.Error(errorMsg);
            }
        }
 
        /// <summary>
        /// 記錄Info日志
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="ex"></param>
        public static void Info(string msg, Exception ex = null)
        {
            if (ex != null)
            {
                LogInfo.Info(msg, ex);
            }
            else
            {
                LogInfo.Info(msg);
            }
        }
 
        /// <summary>
        /// 記錄Monitor日志
        /// </summary>
        /// <param name="msg"></param>
        public static void Monitor(string msg)
        {
            LogMonitor.Info(msg);
        }
    }

 接下來我們直接在需要打日志的地方調用LoggerHelper類中的方法就可以瞭

到此這篇關於C#使用log4net打日志的文章就介紹到這瞭,更多相關C# log4net日志內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: