MVC5中使用Log4Net

时间:2023-11-18 08:07:13

最早搜到的是这篇:

http://www.codeproject.com/Articles/823247/How-to-use-Apache-log-net-library-with-ASP-NET-MVC

百度的话,到处是这篇文章的翻译,转载来转载去的,真没意义

但是这里面描述的配置太麻烦了,而且实际项目更可能的是类似这样一个目录:

MVC5中使用Log4Net

更合理的应该是只要在Tool中添加log4net的引用,再封装一个帮助类供外调用即可

试了一下,这样做就可以了:

1.添加引用

这个不用解释了吧

2.添加一个配置文件:

MVC5中使用Log4Net

内容如下:

<log4net>
<logger name="logerror">
<level value="ALL" />
<appender-ref ref="ErrorAppender" />
</logger>
<logger name="loginfo">
<level value="ALL" />
<appender-ref ref="InfoAppender" />
</logger>
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="Log\\LogError\\" />
<param name="AppendToFile" value="true" />
<param name="MaxSizeRollBackups" value="100" />
<param name="MaxFileSize" value="10240" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="yyyyMMdd&quot;.log&quot;" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
<!--<param name="ConversionPattern" value="&lt;HR COLOR=red&gt;%n异常时间:%d [%t] &lt;BR&gt;%n异常级别:%-5p &lt;BR&gt;%n异 常 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n " />-->
</layout>
</appender>
<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="yyyyMMdd&quot;.log&quot;" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
<!--<param name="ConversionPattern" value="&lt;HR COLOR=gray&gt;%n日志时间:%d [%t] &lt;BR&gt;%n日志级别:%-5p &lt;BR&gt;%n日 志 类:%c [%x] &lt;BR&gt;%n%m &lt;BR&gt;%n " />-->
</layout>
</appender>
</log4net>

ConversionPattern是控制输出内容,如果想要日志输出html文件,

取消注释掉的ConversionPattern,反将其上面一个ConversionPattern注释掉

再将DatePattern中的.log改成.htm

3.创建帮助类

MVC5中使用Log4Net

代码如下:

public static class LogHelper
{
private static log4net.ILog _loginfo;
private static log4net.ILog _logerror;
private static bool _config = false; public static void Config()
{
if (_config) return; var tmp = System.Reflection.Assembly.GetExecutingAssembly().Location;
var codeBase = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
codeBase = codeBase.Substring(, codeBase.LastIndexOf("/") - + );
string file = codeBase + "log4net.config";
using (var fs = File.Open(file, FileMode.Open))
log4net.Config.XmlConfigurator.Configure(fs);
_loginfo = log4net.LogManager.GetLogger("loginfo");
_logerror = log4net.LogManager.GetLogger("logerror");
_config = true;
} public static void Debug(object info)
{
_loginfo.Debug(info);
} public static void Info(object info)
{
_loginfo.Info(info);
} public static void Error(Exception ex)
{
_logerror.Error(ex.Message, ex);
}
}

4.Web配置

在Global.asax中添加一行代码:

MVC5中使用Log4Net

5.结果

再次运行代码,你就能看到Log目录在网站根目录下生成了。