log4net的运用示例

说明:本程序是本人第一次运用log4net时的体会,写博客主要是给自己加深印象并可供自己随时浏览查阅。

1.什么是log4net

log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具点击打开链接。并且可以根据实际情况记载控制要输出的日志级别,包括:

  • FATAL(致命错误):错误无法修复,不能继续下去;
  • ERROR(错误):可以进行一些修复性的工作,但无法确定系统会正常的工作下去;
  • WARN(警告):还可以把系统恢复到正常状态中,系统可以继续运行下去;
  • INFO(一般信息):用来反馈系统当前状态给用户;
  • DEBUG(调试信息):任何有利于系统调试时运行的状态输出,但实际运行中,一般不输出

2.怎么使用log4net

下面主要运用C#示例代码运行进行讲解。


1)运用VS2013创建Testlog的Form窗体应用程序



2)添加log4net的dll



3)创建配置文件log4net.config



4)在AssemblyInfo添加log4net的程序配置


代码:

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


说明:若按照上步骤添加后,日志文件未能输出。则可在程序入口点设置代码如下,同样见效:

var path = Path.GetFullPath(@"..\..") + "\\log4net.config";
log4net.Config.XmlConfigurator.Configure(new FileInfo(path));


5)添加log4net.config配置文件的具体设置(设置样式很多,本篇内容只是个例子)


    
    

    
    
  
     
     
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
    
      
      
      
       
       
    
      
      
    
      
      
      
       
       
      
       
       
    
      
      
  
     
     
  
     
     
    
      
      
    
      
      ERROR->WARN->INFO->DEBUG->ALL :Lowest -->
    
      
      
    
      
      
  
     
     

    
    
                          http://www.cnblogs.com/jys509/p/4569874.html

6)在示例代码中实现


a.主程序入口点

static void Main()
{
    //根据实际情况设置,若在AssmblyInfo.cs中添加配置有效,则无需使用下面两行
    var path = Path.GetFullPath(@"..\..") + "\\log4net.config";
    log4net.Config.XmlConfigurator.Configure(new FileInfo(path));

    log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));
    if (log.IsWarnEnabled)
    {
        log.Warn("程序开始");
    }

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());

    if (log.IsWarnEnabled)
    {
        log.Warn("程序结束");
    }
}

b.窗体加载

private void Form1_Load(object sender, EventArgs e)
{
    log4net.ILog log = log4net.LogManager.GetLogger(typeof(Form1));
    if (log.IsInfoEnabled)
    {
        log.Info(string.Format("当前的时间是{0}", DateTime.Now.ToString()));
    }
    MessageBox.Show("ok!");
}

c.日志文件输出



案例的示例全部代码下载地址: http://pan.baidu.com/s/1gfIPYRh

7) 补充

        在放置log4net.config配置文件时,C#应用程序要匹配到配置文件的路径,通常的路径获取方法如下所示:

static void Main(string[] args)
{
    //将123.xml文件放置在程序默认环境路径
    string envPath = Environment.CurrentDirectory + "\\123.xml";
    Console.WriteLine(string.Format("使用Environment.CurrentDirectory的路径:{0}", envPath));
    Console.WriteLine();

    //获取123.xml文件全路径
    string fullPath = "获取全路径:" + Path.GetFullPath(envPath);
    Console.WriteLine(fullPath);
    Console.WriteLine();

    //获取123.xml文件所在目录
    string fileDir = "获取文件所在目录:" + Path.GetDirectoryName(envPath);
    Console.WriteLine(fileDir);
    Console.WriteLine();

    //获取123.xml文件名称(包括后缀)
    string fileName = "获取文件名称:" + Path.GetFileName(envPath);
    Console.WriteLine(fileName);
    Console.WriteLine();

    //获取123.xml文件名称(不包括后缀)
    string fileNameWithoutExtension = "获取文件名称没有后缀:" + Path.GetFileNameWithoutExtension(envPath);
    Console.WriteLine(fileNameWithoutExtension);
    Console.WriteLine();

    //获取123.xml文件后缀
    string fileExtension = "获取文件后缀:" + Path.GetExtension(envPath);
    Console.WriteLine(fileExtension);
    Console.WriteLine();

    //获取123.xml文件所在根目录
    string rootDir = "获取根目录:" + Path.GetPathRoot(envPath);
    Console.WriteLine(rootDir);
    Console.WriteLine();

    //获取默认环境路径下的上级目录
    string lastPath =Path.GetFullPath("..");
    Console.WriteLine("文件上级目录:" + lastPath);
    Console.WriteLine();

    //获取默认环境路径下的上上目录
    string lastlastPath = Path.GetFullPath(@"..\..");
    Console.WriteLine("文件上级目录:" + lastlastPath);

    Console.ReadKey();
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值