C# 工具类LogHelper
一、创建一个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========="); } }
六、运行结果