热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#Log4Net日志

C#使用Log4Net记录日志第一步:下载Log4Net下载地址:http:logging.apache.orglog4netdownload_log4

C#使用Log4Net记录日志

第一步:下载Log4Net

           下载地址:http://logging.apache.org/log4net/download_log4net.cgi

           把下载的  log4net-1.2.11-bin-newkey解压后,如下图所示:

         

            双击bin文件夹

             

              双击net文件夹,选择针对.NET FramerWork的不同版本

              

             找到相应版本的log4net.dll

第二步:应用Log4Net

            

          1、在项目中添加Log4Net.DLL的引用

                开发环境:XP Professional Service Pack3

               开发工具:VS2010旗舰版

          新建个WinForm应用程序,效果图如下仅为了简单演示

              

           窗体命名为:FormMain

          Log4Net.Dll复制到项目的根目录下,然后添加Log4Net的引用

         

   

      添加引用之后

    2、配置Log4Net

       (1)新建一个应用程序配置文件app.config

              

      (2)app.config的配置文件内容如下

         

1 "1.0"?>

2

3

4

"log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

5

6

7

8 "RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

9

10 "log\\"/>

11 "true"/>

12 "Date"/>

13 "yyyy\\yyyyMM\\yyyyMMdd'.txt'"/>

14 "false"/>

15 "MaxSizeRollBackups" value="100"/>

16 "log4net.Layout.PatternLayout">

17

18

19

20 "%newline %n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/>

21

22

23

24 "ERROR"/>

25

26 ref ref="RollingLogFileAppender"/>

27

28

29

   

        

    每个参数的含义请参考如下链接:

    Log4Net使用详解转载周公

    http://blog.csdn.net/zhoufoxcn/article/details/2220533

   Log4Net使用详解续转载周公

   http://www.cnblogs.com/zhoufoxcn/archive/2010/11/23/2515616.html

(3)新建一个LogHelper帮助类,为了在多个窗体中都进行调用,类内容如下:

    

1 using System;

2 using System.Collections.Generic;

3 using System.Linq;

4 using System.Text;

5

6 [assembly: log4net.Config.XmlConfigurator(Watch = true)]

7 namespace TestLog4Net

8 {

9 public class LogHelper

10 {

11 ///

12 /// 输出日志到Log4Net

13 ///

14 ///

15 ///

16 #region static void WriteLog(Type t, Exception ex)

17

18 public static void WriteLog(Type t, Exception ex)

19 {

20 log4net.ILog log = log4net.LogManager.GetLogger(t);

21 log.Error("Error", ex);

22 }

23

24 #endregion

25

26 ///

27 /// 输出日志到Log4Net

28 ///

29 ///

30 ///

31 #region static void WriteLog(Type t, string msg)

32

33 public static void WriteLog(Type t, string msg)

34 {

35 log4net.ILog log = log4net.LogManager.GetLogger(t);

36 log.Error(msg);

37 }

38

39 #endregion

40

41

42 }

43 }

此时生成解决方案,可能会出现如下错误信息:

   未能找到类型或命名空间名称"log4net"(是否缺少using指令或程序集引用?)解决方法  

   当前上下文中不存在名称"log4net"解决方法

此时可能有的人很纳闷,明明添加了引用怎么还提示找不到命名空间呢。解决这个问题很简单,右键项目选择属性

 

   

 

将目标框架默认的.NET Framework4 Client Profile修改为.NET Framework4之后再重新生成解决方案就行了。

   

第三步:测试Log4Net

   

           在按钮的事件中添加如下的代码

   

1 using System;

2 using System.Collections.Generic;

3 using System.ComponentModel;

4 using System.Data;

5 using System.Drawing;

6 using System.Linq;

7 using System.Text;

8 using System.Windows.Forms;

9

10 namespace TestLog4Net

11 {

12 public partial class FormMain : Form

13 {

14 public FormMain()

15 {

16 InitializeComponent();

17 }

18

19 private void btnTest_Click(object sender, EventArgs e)

20 {

21 //第一种记录用法

22 //(1)FormMain是类名称

23 //(2)第二个参数是字符串信息

24 LogHelper.WriteLog(typeof(FormMain), "测试Log4Net日志是否写入");

25

26

27 //第二种记录用法

28 //(1)FormMain是类名称

29 //(2)第二个参数是需要捕捉的异常块

30 //try {

31

32 //}catch(Exception ex){

33

34 // LogHelper.WriteLog(typeof(FormMain), ex);

35

36 //}

37

38

39 }

40 }

41 }

   

   

运行项目点击Button按钮,在项目的根目录下就会看到log文件夹

打开log文件夹就会看到里面以日期命名的文件夹一直打开可以看到如下图

看到这个文件就说明log4net.dll的应用已经成功了。

   

   

备注:文件夹的命名是根据你在app.config里面设置的file节点自动生成的,你可以根据自己的需要自己设置存放的路径和格式等。

       如果部分图片显示不出来,请用Chrome浏览器查看。

      下载log4net测试源码

LOG4NET用法(个人比较喜欢的用法)

 

log 4net组件下载:log4net.dll

 

web.config配置如下:

 

%n异常时间:%d [%t]
%n异常级别:%-5p


%n异 常 类:%c [%x]
%n%m
%n


" />

%n日志时间:%d [%t]
%n日志级别:%-5p


%n日 志 类:%c [%x]
%n%m
%n


" />

COOKIEless="false" timeout="20" />

 

LOG操作类

 

using System;

using System.IO;

 

namespace TankAction.SystemLog

{

///

/// LogHelper的摘要说明。

///

public class LogHelper

{

private SystemLog()

{

}

 

public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");

 

public static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");

 

public static void SetConfig()

{

log4net.Config.DOMConfigurator.Configure();

}

 

public static void SetConfig(FileInfo configFile)

{

log4net.Config.DOMConfigurator.Configure(configFile);

}

 

public static void WriteLog(string info)

{

if(loginfo.IsInfoEnabled)

{

loginfo.Info(info);

}

}

 

public static void WriteLog(string info,Exception se)

{

if(logerror.IsErrorEnabled)

{

logerror.Error(info,se);

}

}

}

}

 

 

Global.asax.cs文件配置如下:

 

 

protected void Application_Start(Object sender, EventArgs e)

{

SystemLog.SetConfig();

}

protected void Application_Error(Object sender, EventArgs e)

{

Exception objExp = HttpContext.Current.Server.GetLastError();

LogHelper.WriteLog("\r\n客户机IP:"+ Request.UserHostAddress +"\r\n错误地址:"+ Request.Url +"\r\n异常信息:"+ Server.GetLastError().Message,objExp);

}

 

eg:

try

{}

catch(Exception ex)

{

LogHelper.WriteLog("ErrorInfo"ex);

}

-------------------------------------对大家有所帮助,是我最大的快乐。。。。。。

转:https://www.cnblogs.com/qq260250932/p/5444042.html



推荐阅读
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
author-avatar
航头党员之家
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有