How do I use a GlobalContext property in a log4net appender name?

后端 未结 4 1630
终归单人心
终归单人心 2020-12-01 00:37

I\'m trying to customise a log4net file path to use a property I have set in the log4net.GlobalContext.Properties dictionary.

log4net.GlobalCont         


        
4条回答
  •  被撕碎了的回忆
    2020-12-01 01:26

    I ran into the same behavior and solved it by setting the global variable before calling the XmlConfigurator... Here is what I am successfully using:

    log4net.config details:

    
      
      ...
    
    

    Global.asax details:

    private static readonly log4net.ILog log = log4net.LogManager.GetLogger("Global.asax");
    void Application_Start(object sender, EventArgs e) 
    {
        // Set logfile name and application name variables
        log4net.GlobalContext.Properties["LogName"] = GetType().Assembly.GetName().Name + ".log";
        log4net.GlobalContext.Properties["ApplicationName"] = GetType().Assembly.GetName().Name;
    
        // Load log4net configuration
        System.IO.FileInfo logfile = new System.IO.FileInfo(Server.MapPath("log4net.config"));
        log4net.Config.XmlConfigurator.ConfigureAndWatch(logfile);
    
        // Record application startup
        log.Debug("Application startup");
    }
    

    Hope this helps...

提交回复
热议问题