C#:MVC引用Log4Net生成错误日志
第一步:引用log4net配置文件

第二步:在自己项目下新建文件夹LogNet,再在里面建立类Log.cs

log.cs内容如下:
public class Log { public static void WriteFatal(Exception ex) { log4net.ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); log.Fatal("严重错误", ex); } /// <summary> /// 输出异常信息 /// </summary> /// <param name="t"></param> /// <param name="e"></param> public static void WriteLog(Type t, Exception e) { log4net.ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); log.Error("Error", e); } /// <summary> /// 输出普通错误信息 /// </summary> /// <param name="ex"></param> public static void WriteLog(Exception ex) { log4net.ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); log.Error("Error", ex); } /// <summary> /// 输出DEBUG信息 /// </summary> /// <param name="text"></param> public static void WriteDebug(object text) { log4net.ILog log = log4net.LogManager.GetLogger("Debug信息"); log.Debug(text); } /// <summary> /// 输出程序运行信息 /// </summary> /// <param name="text"></param> public static void WriteInfo(string text) { ILog log = LogManager.GetLogger("程序运行信息"); log.Info(text); } }
第三步:在自己项目下新建Log4Net.config
Log4Net.config内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="./Logs/%date{yyyy-MM-dd}.log"></file>
<appendToFile value="true" />
<rollingStyle value="composite" />
<maxSizeRollBackups value="20" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<maximumFileSize value="600KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level - %F - %L%n %logger %m%n" />
</layout>
<!--ALL DEBUG INFO WARN ERROR FATAL OFF-->
<!--
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="ERROR" />
</filter>
<filter type="log4net.Filter.LevelMatchFilter">
<param name="LevelToMatch" value="ERROR" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
-->
</appender>
<!--定义输出到控制台命令行中-->
<appender name="ConsoleAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level - %message%n" />
</layout>
</appender>
<root>
<!--ALL DEBUG INFO WARN ERROR FATAL OFF-->
<level value="ALL" />
<!-- 文件形式记录日志 -->
<appender-ref ref="LogFileAppender" />
<!-- 控制台控制显示日志 -->
<appender-ref ref="ConsoleAppender" />
</root>
<!--
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
-->
</log4net>
</configuration>
第四步:在项目中搜索Global.asax.cs中加载log4net配置文件

log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/log4net.config")));
第五步:也是比较重要的一步,就是在AssemblyInfo.cs中注册这个Log4Net.config,不然是不会自动生成text文件的。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]
第六步:然后就可以在控制器函数里面去引用Log。


浙公网安备 33010602011771号