log4net.2.0.8单独封装类库遇到的坑

一、先上代码

log4net.config



 
   


 
 
   
   
   
   
    
   
     
     
     
     
     
     
       
     

   

   
     
     
     
   

   
     
     
     
     
   

 


LogHelper.cs

public class LogHelper
    {
        //public LogHelper()
        //{
        //    log4net.Config.XmlConfigurator.Configure(new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "bin\\log4net.config"));
        //}

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

        //private static readonly log4net.ILog log = log4net.LogManager.GetLogger("PublicLogger");
        public static void WriteLog(string msg, LogType logType = LogType.Debug)
        {
            switch (logType)
            {
                case LogType.Debug:
                    log.Debug(msg);break;
                case LogType.Error:
                    log.Error(msg); break;
                case LogType.Info:
                    log.Info(msg); break;
                case LogType.Warn:
                    log.Warn(msg); break;
                case LogType.Fatal:
                    log.Fatal(msg); break;
                default:
                    log.Debug(msg); break;
            }
        }

        public enum LogType
        {
            Debug = 0,//调试
            Error = 1,//错误
            Info = 2,//信息
            Warn = 3,//警告
            Fatal=4  //致命
        };

    }

AssemblyInfo.cs添加一行代码

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

二、坑在哪

1.log4net.config必须为始终复制。

2.我的项目是Web引用封装的类库Utility,生成路径为Web项目的bin目录下,所以在我查的所有资料里很多都没说明这一点,加上bin之后,log4net.LogManager.GetLogger后,各个属性(IsFatalEnabled,IsWarnEnabled,IsInfoEnabled,IsDebugEnabled,IsErrorEnabled)都为true,才能正常输出日志。

3.日志格式通过config自行配制即可(我的格式是Log\\yyyy-mm-dd.log)。

 

 

转载于:https://my.oschina.net/summeryan/blog/1835258

你可能感兴趣的:(log4net.2.0.8单独封装类库遇到的坑)