log4j使用
创建项目—>利用NuGet安装log4net
打开App.config,没有就创建一个
修改配置(App.config)
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <!-- 定义输出到文件中 --> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--定义文件存放位置--> <!--<file value="log\\"/>--> <!--日志名称--> <file value="log"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/> <staticLogFileName value="false"/> <!--日志最大可备份数--> <maxSizeRollBackups value="10"/> <!--日志文件大小--> <maximumFileSize value="1024KB"/> <layout type="log4net.Layout.PatternLayout"> <!--每条日志末尾的文字说明--> <!--输出格式--> <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> <conversionPattern value="%newline 记录时间:%date %n日志级别:%-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline"/> </layout> </appender> <root> <level value="all"/> <!--文件形式记录日志--> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net> </configuration>
新建一个LogisTrac日志类,以实现公共调用,具体代码如下:
using System; [assembly: log4net.Config.XmlConfigurator(Watch = true)] namespace demo1 { public class LogisTrac { /// <summary> /// 输出日志到Log4Net /// </summary> /// <param name="t"></param> /// <param name="ex"></param> #region static void WriteLog(Type t, Exception ex) public static void WriteLog(Type t, Exception ex) { log4net.ILog log = log4net.LogManager.GetLogger(t); log.Error("Error", ex); } #endregion /// <summary> /// 输出日志到Log4Net /// </summary> /// <param name="t"></param> /// <param name="msg"></param> #region static void WriteLog(Type t, string msg) public static void WriteLog(Type t, string msg) { log4net.ILog log = log4net.LogManager.GetLogger(t); log.Error(msg); } #endregion } }
测试代码:
private void button3_Click(object sender, EventArgs e) { try { throw new Exception(); } catch (Exception ex) { LogisTrac.WriteLog(typeof(Form1), ex); } }
效果: