log4net配置文件独立和解决方案中不同项目的日志共享

一、共享日志项目建立

  • 首先,在解决方案中,新建一个类库项目中,命名为Log,新建一个配置文件,具体方法为右击项目->添加->新建项->应用程序配置文件
    并将其命名为log4net.config。也可以直接将App.config赋值后更名为log4net.config。
    log4net配置文件独立和解决方案中不同项目的日志共享_第1张图片


  • (关键)右击该配置文件,属性->复制到输出目录->始终复制
    log4net配置文件独立和解决方案中不同项目的日志共享_第2张图片



    完成后如下:
    log4net配置文件独立和解决方案中不同项目的日志共享_第3张图片
    在Class1.cs(可自行命名)中对log4net进行封装,以便可以在其它项目中使用。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
namespace Log
{
    public static class LogHelper
    {
        static log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

        public static void WriteDebug(string message)
        {
            log.Debug(message);
        }

        public static void WriteError(string message)
        {
            log.Error(message);
        }
    }
}

在需要使用日志类的项目中引用上面的Log项目即可。
至此就可以使用相同的配置文件来配置log4net并在解决方案中共享了。

二、配置文件的参考

以下配置文件,将Debug和Error等级的日志分散到不同的文件夹,且以时间格式命名日志文件。可根据需要进行修改
注意:
日志的文件名的命名中不变的部分以单引号封装,如下面的log.txt部分


配置文件:



  
    

三、使用log4net的一般使用步骤

  • 配置log4net配置文件
    具体参考二


  • 程序集特性设置

在每个要使用日志的命名空间上加上

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

  • 创建Logger

在Logger中,log4net提供了一个名为LogManager的类给我们用于获取或者创建一个Logger。LogManager提供了方法GetLogger(),该方法接收一个string类型的参数,用于指定Logger的名称:

log4net.ILog log = log4net.LogManager.GetLogger("Logger_Name");

当指定名称的Logger不存在时,LogManager将自动创建一个。通常情况下,都是使用Logger所在类的名称来作为Logger的名称,即GetLogger方法的参数可以是typeof(ClassName)。也可以使用如下的方法来传递该参数:

log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

尽管上面的代码比typeof(ClassName)要长的多,但是这样做可以在任何一个类中使用相同的方法传递参数,从而减少出错的机率。

创建了logger后,就可以使用log来记录日志了

log.Debug("debug info");//记录Debug级别的日志
log.Error("error info");//记录Error级别的日志

你可能感兴趣的:(C#,日志标准化)