一、log4net按照不同的【LEVEL】级别输出到不同文件

  1. <log4net>
  2. <!--错误日志:::记录错误日志-->
  3. <!--按日期分割日志文件 一天一个-->
  4. <!-- appender 定义日志输出方式 将日志以回滚文件的形式写到文件中。-->
  5. <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
  6. <!--保存路径:下面路径项目启动的时候自动在C盘中创建log、logError文件-->
  7. <file value="C:\\log\\LogError\\"/>
  8. <!-- 如果想在本项目中添加路径,那就直接去掉C:\\ 只设置log\\LogError 项目启动中默认创建文件 -->
  9. <appendToFile value="true"/>
  10. <!--按照何种方式产生多个日志文件(日期[Date],文件大小[Size],混合[Composite])-->
  11. <rollingStyle value="Date"/>
  12. <!--这是按日期产生文件夹-->
  13. <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/>
  14. <!--是否只写到一个文件中-->
  15. <staticLogFileName value="false"/>
  16. <!--保留的log文件数量 超过此数量后 自动删除之前的 好像只有在 按Size分割时有效 设定值value="-1"为不限文件数-->
  17. <param name="MaxSizeRollBackups" value="100"/>
  18. <!--每个文件的大小。只在混合方式与文件大小方式下使用。超出大小后在所有文件名后自动增加正整数重新命名,数字最大的最早写入。可用的单位:KB|MB|GB。不要使用小数,否则会一直写入当前日志-->
  19. <maximumFileSize value="1GB" />
  20. <!-- layout 控制Appender的输出格式,也可以是xml 一个Appender只能是一个layout-->
  21. <layout type="log4net.Layout.PatternLayout">
  22. <!--每条日志末尾的文字说明-->
  23. <!--输出格式 模板-->
  24. <!-- <param name="ConversionPattern" value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 记录类:%logger
  25. 操作者ID:%property{Operator} 操作类型:%property{Action}%n 当前机器名:%property%n当前机器名及登录用户:%username %n
  26. 记录位置:%location%n 消息描述:%property{Message}%n 异常:%exception%n 消息:%message%newline%n%n" />-->
  27.  
  28. <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
  29. <!--<conversionPattern value="%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n错误描述:%message%newline %n"/>-->
  30. <conversionPattern value="%n==========
  31. %n【日志级别】%-5level
  32. %n【记录时间】%date
  33. %n【线程编号】[%thread]
  34. %n【执行时间】[%r]毫秒
  35. %n【出错文件】%F
  36. %n【出错行号】%L
  37. %n【出错的类】%logger 属性[%property{NDC}]
  38. %n【错误描述】%message
  39. %n【错误详情】%newline"/>
  40. </layout>
  41. </appender>
  42.  
  43. <!--Error日志::: 错误日志-->
  44. <logger name="logerror">
  45. <level value="ERROR" />
  46. <appender-ref ref="ErrorAppender" />
  47. </logger>
  48. </log4net>
     

最后别忘了Application_Start()  log4net.Config.XmlConfigurator.Configure();

  1. private static readonly log4net.ILog log =
  2. log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().ReflectedType);

Log4net的安装

Install-Package log4net

1.先弄个日志记录的类

  1. /// <summary>
  2. /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里要配置相应的节点
  3. /// </summary>
  4. public class LogHelper
  5. {
  6. //log4net日志专用
  7. public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
  8. public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
  9.  
  10. public static void SetConfig()
  11. {
  12. log4net.Config.XmlConfigurator.Configure();
  13. }
  14.  
  15. public static void SetConfig(FileInfo configFile)
  16. {
  17. log4net.Config.XmlConfigurator.Configure(configFile);
  18. }
  19. /// <summary>
  20. /// 普通的文件记录日志
  21. /// </summary>
  22. /// <param name="info"></param>
  23. public static void WriteLog(string info)
  24. {
  25. if (loginfo.IsInfoEnabled)
  26. {
  27. loginfo.Info(info);
  28. }
  29. }
  30. /// <summary>
  31. /// 错误日志
  32. /// </summary>
  33. /// <param name="info"></param>
  34. /// <param name="se"></param>
  35. public static void WriteLog(string info, Exception se)
  36. {
  37. if (logerror.IsErrorEnabled)
  38. {
  39. logerror.Error(info, se);
  40. }
  41. }
    }

在 configSections 节点上添加:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />

然后配置单独的节点:

  1. <!--日志-->
  2. <log4net>
  3. <logger name="logerror">
  4. <level value="ERROR" />
  5. <appender-ref ref="ErrorAppender" />
  6. </logger>
  7. <logger name="loginfo">
  8. <level value="INFO" />
  9. <appender-ref ref="InfoAppender" />
  10. </logger>
  11. <appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
  12. <param name="File" value="E:\xxx.com\xx.xxx.com\App_Log\Error\ErrorLog.log" />
  13. <param name="AppendToFile" value="true" />
  14. <param name="MaxSizeRollBackups" value="" />
  15. <param name="MaximumFileSize" value="1MB" />
  16. <param name="RollingStyle" value="Size" />
  17. <param name="StaticLogFileName" value="true" />
  18. <layout type="log4net.Layout.PatternLayout">
  19. <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
  20. </layout>
  21. </appender>
  22. <appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
  23. <param name="File" value="E:\xxx.com\xxx.xxx.com\App_Log\Info\InfoLog.log" />
  24. <param name="AppendToFile" value="true" />
  25. <param name="MaxSizeRollBackups" value="" />
  26. <param name="MaximumFileSize" value="1MB" />
  27. <param name="RollingStyle" value="Size" />
  28. <param name="StaticLogFileName" value="true" />
  29. <layout type="log4net.Layout.PatternLayout">
  30. <param name="ConversionPattern" value="%-5p %d [%c] %m%n" />
  31. </layout>
  32. </appender>
  33. </log4net>

3.在GOLBAL文件里调用写日志:

  1. void Application_Start(object sender, EventArgs e)
  2.  
  3. {
  4. //在应用程序启动时运行的代码
  5. //初始日志的配置
  6. LogHelper.SetConfig();
  7. }
  8.  
  9. void Application_Error(object sender, EventArgs e)
  10. {
  11. //在出现未处理的错误时运行的代码
  12. Exception objExp = HttpContext.Current.Server.GetLastError();
  13. string username = "";
  14. string userid = "";
  15. if (Session["ulogin"] != null)
  16. {
  17. string[] uinfo=Session["ulogin"].ToString().Split('|');
  18. userid = uinfo[];
  19. username = uinfo[];
  20. }
  21. Aotain114.Public.LogHelper.WriteLog("\r\n用户ID:"+userid+"\r\n用户名:"+username+"\r\n客户机IP:" + Request.UserHostAddress + "\r\n错误地址:" + Request.Url + "\r\n异常信息:" + Server.GetLastError().Message, objExp);
  22.  
  23. }

LOG4NET日志配置及使用的更多相关文章

  1. Log4Net 日志配置[附带源码]

    前述 园子里有许多人对log4net这款开源的日志记录控件有很多介绍.在这里个人再做一次总结,希望对以后有所帮助,需要的时候可以直接使用,减少查阅资料的时间.利用log4net可以方便地将日志信息记录 ...

  2. 【记录】.net 通用log4net日志配置

    asp.net mvc 1.引入log4netNuGet包. 2.修改Global.asax下的Application_Start方法.加入log4net.Config.XmlConfigurator ...

  3. log4net 日志配置及使用

    一.log4net按照不同的[LEVEL]级别输出到不同文件 <log4net> <!--错误日志:::记录错误日志--> <!--按日期分割日志文件 一天一个--> ...

  4. Log4Net日志配置

    1.添加Log4net.dll引用 将release版Log4net.dll拷贝到Lib文件夹,然后添加引用.

  5. log4net日志的配置及简单应用

    在程序运行中,往往会出现各种出乎开发人员意料的异常或者错误,所以,记录详细的程序运行日志信息,有利于开发人员和运维人员排查异常信息,提高工作效率.而本菜鸟在大神推荐和指导下使用log4net这一插件工 ...

  6. 关于log4net日志的配置流程

    最近又重新整理一下log4net日志的配置,现在记录一下流程和一些遇到的问题,以备后续使用,具体的配置参数等信息.此文无,见谅! 1. 下载log4net.dll文件(网上很多,随便找一个!) 2. ...

  7. Log4net日志GUI配置工具

    关于log4net的配置文章在园子里真的很多,但是有关GUI界面配置的文章确定太少,改写了一个以前很早的工具 以前的那个有很多的问题,这个基本的大的问题没有,可能一个小问题还是需要修改下,基本功能肯定 ...

  8. log4net 日志框架的配置

    log4net 日志框架的配置——静态文件(一) 添加对log4net程序集的引用 选择程序集文件添加引用即可,需要注意的是需要添加相应程序版本的程序集,如果你的应用是基于.netFramework2 ...

  9. 日志管理-将Log4net的配置配置到的独立文件中

    转自:http://www.cnblogs.com/zfanlong1314/p/3662679.html使用log4net已经很久了.但从来没有详情了解log4的参数,及具体使用方法.看了周公的博客 ...

随机推荐

  1. iOS开发-完整学习路线图

  2. 开源游戏 “Elvish Bird”

    简介: 这个游戏是我在今年(2014/03)课余时闲着无聊做的一个冒险类小游戏,总共花了5个工作日才完成,为了游戏的效率,做了很多优化,目前在IE8以上浏览器能够流畅运行,运行时如果屏幕分辨率不兼容, ...

  3. 理解TCP三次握手/四次断开的必要性

    1 TCP的三次握手与必要性 (1)三次握手图 (2)必要性:TCP通过三次握手建立可靠的(确保收到)的全双工通信. 1)第一次握手和第二次握手(ACK部分)建立了从客户端到服务器传送数据的可靠连接: ...

  4. 3、软件评测师要阅读的书籍 - IT软件人员书籍系列文章

    软件评测师在项目组的作用也是非常大的.微软的做法是一个软件工程师搭配两个软件评测师,这样能够减少软件系统存在的问题.但是,笔者发现,软件评测在这些年的发展还是比较缓慢的,除了人力进行的测试外,就是软件 ...

  5. MongoDB查询重复记录并保存到文件csv

    客户1w用户记录,发现里面有小部分重复数据 需要查出,比对哪些信息不同 https://docs.mongodb.org/manual/reference/operator/aggregation/# ...

  6. 将dll程序集添加到缓存里

    1.点击开始---所有程序---...如下图 并以管理员身份运行. 2.输入命令行 gacutil.exe /i D:\Word\CRS_BPM_Sln\SourceCode\BPM\Referenc ...

  7. 关于 redis、memcache mongoDB 的对比

    from:http://yang.u85.us/memcache_redis_mongodb.pdf 从以下几个维度,对 redis.memcache.mongoDB 做了对比.1.性能都比较高,性能 ...

  8. 使用数据库sqlite3 C语言实现登陆注册的功能

    //此代码为注册功能 void create_regtable() { int rc; //rc为返回值,判断函数是否执行成功 rc=0函数执行成功,rc !=0函数执行失败 sqlite3 *db; ...

  9. .Net程序员之Python基础教程学习----判断条件与循环[Fourth Day]

        今天学习Python的判断条件与循环操作. 一. 布尔变量: 在学习判断条件之前必须的了解bool变量,在Python中bool变量与C语言比较类似,与.net差别比较大,其中下面集中情况需要 ...

  10. RCC BUCK-BOOST变压器设计

    电路处于Buck-Boost DCM模式,最恶劣情况为输入电压最低时.取频率为f 以下图为例: 1.MOS耐压选择: Vmos≥Vinmax+Vout+80 2.保证磁芯不饱和且始终工作在DCM模式 ...