MVC5中使用Log4Net
最早搜到的是这篇:
http://www.codeproject.com/Articles/823247/How-to-use-Apache-log-net-library-with-ASP-NET-MVC
百度的话,到处是这篇文章的翻译,转载来转载去的,真没意义
但是这里面描述的配置太麻烦了,而且实际项目更可能的是类似这样一个目录:
更合理的应该是只要在Tool中添加log4net的引用,再封装一个帮助类供外调用即可
试了一下,这样做就可以了:
1.添加引用
这个不用解释了吧
2.添加一个配置文件:
内容如下:
<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".log"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
<!--<param name="ConversionPattern" value="<HR COLOR=red>%n异常时间:%d [%t] <BR>%n异常级别:%-5p <BR>%n异 常 类:%c [%x] <BR>%n%m <BR>%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".log"" />
<param name="RollingStyle" value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
<!--<param name="ConversionPattern" value="<HR COLOR=gray>%n日志时间:%d [%t] <BR>%n日志级别:%-5p <BR>%n日 志 类:%c [%x] <BR>%n%m <BR>%n " />-->
</layout>
</appender>
</log4net>
ConversionPattern是控制输出内容,如果想要日志输出html文件,
取消注释掉的ConversionPattern,反将其上面一个ConversionPattern注释掉
再将DatePattern中的.log改成.htm
3.创建帮助类
代码如下:
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中添加一行代码:
5.结果
再次运行代码,你就能看到Log目录在网站根目录下生成了。
MVC5中使用Log4Net的更多相关文章
- 在C#代码中应用Log4Net系列教程(附源代码)
Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...
- 在C#代码中应用Log4Net(二)典型的使用方式
不管用什么框架,学什么东西,最初的想法还不是尽快地用上这个框架,所以我们在这个章节还是不打算介绍具体配置节的应用,而是直接给出一个经典的使用样例,让你尽快上手.即使你对Log4Net的配置不熟悉也完全 ...
- 在C#代码中应用Log4Net(三)Log4Net中配置文件的解释
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger nam ...
- 在C#代码中应用Log4Net(五)将Log4Net正确地封装在自己的类库中并进行调用
前面的几篇文章已经比较完整地解释了怎么使用Log4Net,但是我们可能需要将Log4Net的日志类封装在自己的类库中,以便C/S或B/S程序进行调用.下面的示例程序简单地分为两层,一个是应用程序层We ...
- MVC5中后台提供Json,前台处理Json,绑定给Dropdownlist的例子
MVC5中后台提供Json,前台处理Json,绑定给Dropdownlist的例子: 前端: 我们以前在前端定义了两个控件: <div class="row"> < ...
- 【读书笔记】Ninject 在MVC5中的使用
从MVC3中就开始接触Ninject这个IOC工具.也一直是MVC Framework系列书籍中推荐的IOC工具,当然还有优秀的Autofac等.性能和使用上面个有千秋.下面先看一下Ninject的使 ...
- C#中使用Log4net日志输出到本地文件、Textbox或Listview
网上很多配置log4net的方法,但是排行靠前的 根本就没有说明清除,导致浪费了两个小时来搞清楚如何配置,真是无语,特写此文,给那些刚接触log4net的朋友 1.参考链接:http://blog.s ...
- 在C#代码中应用Log4Net(二)典型的使用方式(转)
不管用什么框架,学什么东西,最初的想法还不是尽快地用上这个框架,所以我们在这个章节还是不打算介绍具体配置节的应用,而是直接给出一个经典的使用样例,让你尽快上手.即使你对Log4Net的配置不熟悉也完全 ...
- 在C#代码中应用Log4Net 中配置文件的解释
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger nam ...
随机推荐
- js中this详解
this对象是在闭包一节中提到的,书上的原话是:"this对象是在运行时基于函数的执行环境绑定的,在全局函数中,this等于window,而当函数作为某个对象的方法调用时,this等于那个对 ...
- FormsAuthentication.HashPasswordForStoringInConfigFile 的替代方法
由于项目中要和php对接,要将一段字符串生成md5(16位)验证码,在英文字符时,没有太大问题,但在遇到中文时,两边字条始终不一致. php是别人的项目,看不到源码,网上一查,估计是这样写的: < ...
- 优化 gruop by 语句
默认情况下,mysql对所有的gruop by col1,col2...的字段进行排序.如果查询包含group by但用户想要避免排序结果的消耗,则可以指定order by null禁止排序. exp ...
- MyEclipse安装插件
原文地址:http://www.cnblogs.com/pharen/archive/2012/02/08/2343342.html 本文讲解MyEclipse(MyEclipse10)的三种方法,以 ...
- 【原创】相对完整的一套以Jmeter作为工具的性能测试教程(接口性能测试,数据库性能测试以及服务器端性能监测)
准备工作 jmeter3.1,为什么是3.1,因为它是要配合使用的serveragent所支持的最高版本,下载链接 https://pan.baidu.com/s/1dWu5Ym JMeterPlug ...
- android之间传递list
Intent intent = new Intent(getActivity(), Activity_Character.class); intent.putExtra("mlTrait&q ...
- python 编写简单的setup.py
学习python也已经有一段时间了,发现python作为脚本语言一个很重要的特点就是简单易用,而且拥有巨多的第三方库,几乎方方面面的库都有,无论你处于哪个行业,想做什么工作,几乎都能找到对应的第三方库 ...
- SpringMVC源码之Controller查找原理
摘要 本文从源码层面简单讲解SpringMVC的处理器映射环节,也就是查找Controller详细过程. SpringMVC请求流程 Controller查找在上图中对应的步骤1至2的过程 Sprin ...
- oracle pl/sql如何定义变量
目的:如何在pl/sql中定义基本类型,引用类型,记录型变量? 以下plsql程序用的scott用户的dept,emp表. 定义基本类型的变量 set serveroutput on ; --使用基本 ...
- linux tar 压缩解压命令
tar命令: -c 压缩-x 解压缩-t 不解压的情况下查看文件内容-r 向压缩文件追加文件-u 更新压缩文件 以上参数必须和'-f'参数连用,且'-f'必须为最后一个参数,后接文档名 -z 对应gz ...