一、創建一個WinForm的項目,並通過NuGet安裝log4net。
二、創建LogHelper類以及log4net.config配置文件。
三、編寫相關代碼。
1、LogHelper類
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WinFormDemo.Helper { /// <summary> /// 使用方法:LogHelper.Info(string.Format("當前時間為{0}.", DateTime.Now.ToString())); /// </summary> public class LogHelper { private static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("LogInfo"); public static void Info(string info) { if (loginfo.IsInfoEnabled) { loginfo.Info(info); } } public static void Info(string excptionType, string message, string stackTrace) { if (loginfo.IsInfoEnabled) { loginfo.ErrorFormat("{0}:{1}\n{2}", excptionType, message, stackTrace); } } public static void Warn(string info) { if (loginfo.IsWarnEnabled) { loginfo.Warn(info); } } public static void Error(Exception ex) { if (loginfo.IsErrorEnabled) { loginfo.Error(ex); } } public static void Error(object message) { if (loginfo.IsErrorEnabled) { loginfo.Error(message); } } public static void Error(string info, Exception ex) { if (loginfo.IsErrorEnabled) { loginfo.Error(info, ex); } } } }
2、log4net.config
<log4net> <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL --> <!-- Set root logger level to ERROR and its appenders --> <root> <level value="ALL" /> <appender-ref ref="SysAppender" /> </root> <logger name="LogInfo"> <level value="DEBUG" /> </logger> <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net"> <param name="File" value="Log/" /> <param name="AppendToFile" value="true" /> <!--Composite為Size和Date的組合,只有設置Composite,才能同時按日期分割日志文件,又要按文件大小分割。--> <param name="RollingStyle" value="Composite" /> <!--同一天最多10個文件,多出的會刪除之前同一天下的文件--> <param name="MaxSizeRollBackups" value="10" /> <!--每個文件的大小--> <param name="MaximumFileSize" value="10M"/> <param name="DatePattern" value=""Logs_"yyyyMMdd".txt"" /> <!--StaticLogFileName的值如果為true,則當前日志文件(相對於歷史日志文件而言)的文件名只取File參數。如果為false,則文件名取File+DatePattern。--> <param name="StaticLogFileName" value="false" /> <layout type="log4net.Layout.PatternLayout,log4net"> <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> </layout> </appender> <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net"> <layout type="log4net.Layout.PatternLayout,log4net"> <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" /> </layout> </appender> </log4net>
3、將log4net.config設為始終復制。
四、在AssemblyInfo.cs添加以下代碼
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
五、添加測試代碼並運行
public partial class Form1 : Form { public Form1() { InitializeComponent(); LogHelper.Info("==========Form1 Init========="); } }
六、運行結果