在C#代码中应用Log4Net(二)典型的使用方式(转)

摘要:
1.介绍Log4Net.dll组件→ 见第1部分。2.自定义Log4Net配置文件的介绍与第1部分不同。我们将不再在App.config或Web.config(应用程序配置文件)中配置Log4Net文件。我们计划在App.config中配置一些必要的信息,然后在XML文件中配置特定的配置信息。

不管用什么框架,学什么东西,最初的想法还不是尽快地用上这个框架,所以我们在这个章节还是不打算介绍具体配置节的应用,而是直接给出一个经典的使用样例,让你尽快上手。即使你对Log4Net的配置不熟悉也完全没有关系。

(下面的文章假定你已经看过了第一篇,当然在有的操作中,我还是会简单地重复第一篇,以便加深你的记忆)

先说说这篇教程的思路,我们打算使用Log4Net,首先必须先引入Log4Net的库;然后我们要对Log4Net进行一些配置;最后,我们会在代码里面使用它。

1、引入Log4Net.dll组件→见第一篇

2、自定义Log4Net配置文件的引入

与第一篇不同的是,我们将不再App.config或Web.config(应用程序配置文件)中配置Log4Net文件了,我们打算在 App.config中配置少许的必要信息,然后将具体的配置信息在一个XML文件中配置Log4Net这样的话,不会让App.Config太过于臃 肿,它的可移植性也会更好。

   2.1 我们将log4net.config文件引入到项目中,同时让它复制到输出目录。因为 log4net框架会在相对于AppDomain.CurrentDomain.BaseDirectory 属性定义的目录路径下查找配置文件。框架在配置文件里要查找的唯一标识是<log4net>标签。(log4net.config可以在文章 末尾下载)

image

跟文章(一)比起来,我们的App.config文件现在就清爽多了image

     2.2 在文章(一)中,我们没有指定具体使用什么文件,Log4Net自动帮我们选择使用app.config文件了,现在我们有了自己的配置文件,自然需要指 定一下使用哪一个配置文件,不能再让Log4Net帮我们自动选择了。我们只需要在AssemblyInfo.cs文件中写一句话指定使用哪个配置文件即 可。

[assembly: log4net.Config.XmlConfigurator( ConfigFile="log4net.config", ConfigFileExtension = "config", Watch = true)]

3.在代码中使用Log4Net

我封装了一个类叫LogHelper,里面的两个logger类,分别对应在Log4Net.config中的两个Logger。

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Common
{
    public class LogHelper  
    {
        public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");

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

        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);
            }
        }  
    }
}
复制代码

像文章(一)一样,我们建立一个winform程序,添加一个按钮,在按钮中写入如下的点击事件。

image

4、运行效果

日志文件在“程序的输出目录(就是Debug文件夹)LogLogInfo”

image

小提示

在文章中的log4net.config文件可以在示例程序中找到。

示例程序下载


作者:kissazi2
出处:http://www.cnblogs.com/kissazi2/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

免责声明:文章转载自《在C#代码中应用Log4Net(二)典型的使用方式(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇UGUI Toggle控件Oracle 11.2.0.4 For Windows 64bit+32bit 数据库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Eclipse配置C++11环境详细介绍

转:https://blog.csdn.net/wgxh05/article/details/54021049 本文记录Eclipse配置C++11开发所有作者遇到的情况,包括跨工程文件编译,内联文件编译等。 1.菜单“Project”——“Properties”——“C++ General”,如图所示:   2.“C++ Build”——“Setting...

Linux如何解决动态库的版本控制

(换句话说,soname不是真实存在的文件,只是在此库中和将来调用此库的文件中保存的一个名字,在加载时去找这个名字,使用时创建一个软连接来指向真实文件,这样真实文件的版本号就可以升级了) Linux 系统,也同样面临和Window一样的问题,如何控制动态库的多个版本问题。Window之前没有处理好,为此专门有个名词来形容这个问题 “Dll hell”,其严...

MacOs终端忽略大小写

使用MacOs的终端时,唯一让人感觉不爽的就是Tab补全是区分大小的,所以查了资料就把这个问题搞定了。在用户目录下创建 .inputrc 文件,内容为以下三行代码,保存后重启终端再次输入文件名Tab补全就可以忽略大小写。 set completion-ignore-case on set show-all-if-ambiguous on TAB:menu-...

Linux下利用fcntl改变Socket阻塞方式

用以下方法将socket设置为非阻塞方式  int flags = fcntl(socket, F_GETFL, 0); fcntl(socket, F_SETFL, flags | O_NONBLOCK); 用以下方法将socket设置为非阻塞方式 int flags = fcntl(socket, F_GETFL, 0); fcntl(socket...

jemter上传到服务器进行压测

1.xshell连接服务器;                                              连接成功 2.压测机器申请,要申请权限才可访问到机器。 3.进入压测执行阶段,使用手动命令的方式完成操作,根据实际情况,是采用1台压力机还是多台压力机进行分布式压测。(提前讲多台压力机分布式压测配置好,master机器 x.x.x.x...

ffmpeg拼接视频方法concat

ffmpeg合并视频的方法有三种。 方法一.使用concat协议进行视频文件的合并     1.对于 MPEG 格式的视频,可以直接连接:     //视频尺寸要一致     ffmpeg -i concat:"1.mpg|2.mpg|3.mpg" -c copy output.mp4     2.对于非 MPEG 格式容器,但是是 MPEG 编码器(H....