What about using:

// Disable logging
LogManager.GetRepository().Threshold = Level.Off; 

// Do stuff

// Enable logging
LogManager.GetRepository().Threshold = Level.All;


Cheers,
Nicko

> -----Original Message-----
> From: Ramaa Davanagere [mailto:[EMAIL PROTECTED] 
> Sent: 27 September 2006 12:38
> To: 'Log4NET User'
> Subject: RE: Turn off logging for a specific event only
> 
>  
> 
> Below is the structure of my code. In my constructor, I load 
> my configuration file and configure my log4net logger.
> 
>  
> 
> myFunction() method gets called from the Main() method. As 
> you can see, when entering the myFunction() method, I want to 
> set the log level to OFF and then reset it to DEBUG while 
> exiting the function. The myFunction() methods calls several 
> other components and methods (for eg: a,b, c, etc) to do 
> stuff and hence passing the Boolean variable to this method 
> will not work. Also, having an separate appender will not 
> work in my scenario, since the methods a, b and c will be 
> used in various other places as well.
> 
>  
> 
> public myConstructor()
> 
> {
> 
>             if (logconfigpath == null)
> 
>             {
> 
>                         logconfigpath = 
> System.AppDomain.CurrentDomain.BaseDirectory;
> 
>                         logconfigpath += 
> System.AppDomain.CurrentDomain.RelativeSearchPath;
> 
>                         
> log4net.Config.XmlConfigurator.Configure(new 
> System.IO.FileInfo(Path.GetFullPath(logconfigpath) + 
> Path.DirectorySeparatorChar.ToString() + "myconfigfile.xml"));
> 
>             }
> 
> }
> 
>  
> 
> public void Main(XmlElement oParameter1, string sParameter2, 
> string sParameter3, string sParameter4)
> 
> {
> 
>             
> logger.Info(System.Reflection.MethodBase.GetCurrentMethod() + 
> ": Entering.");
> 
>             
> 
>             //do my stuff here.
> 
>             
> 
>             String sResult = myFunction (oParameter1, sParameter2);
> 
>             
> 
>             
> logger.Info(System.Reflection.MethodBase.GetCurrentMethod() + 
> ": Leaving.");
> 
> }
> 
>  
> 
> private string myFunction(XmlElement oParameter1, string sParameter2)
> 
> {
> 
>         //turn off logging here...I would like to set the 
> loglevel to OFF
> 
>         
> 
>         //do my stuff here.
> 
>         
> 
>         //turn on the logging .....I would like to reset the 
> loglevel to DEBUG
> 
>  
> 
> }
> 
>  
> 
> After looking around on the internet, I found this code
> 
>  
> 
> log4net.Repository.Hierarchy.Logger logger2 = 
> (log4net.Repository.Hierarchy.Logger)log4net.LogManager.GetLog
> ger("myappendername").Logger);
> 
> logger2.Level = logger2.Repository.LevelMap["OFF"];
> 
>  
> 
> But this is not working as expected.  Log messages are still 
> being writing to my log file, even though the level is set to 
> OFF. Obviously, I'm missing something here. 
> 
>  
> 
> Please help
> 
>  
> 
> Thank you
> 
>  
> 
> -Ramaa
> 
>  
> 
> -----Original Message-----
> From: Ron Grabowski [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, September 26, 2006 7:04 PM
> To: Log4NET User
> Subject: Re: Turn off logging for a specific event only
> 
>  
> 
> Will this work?
> 
>  
> 
> private int calculateBigNumber(bool loggingEnabled)
> 
>  
> 
> {
> 
>  
> 
>  if (loggingEnabled && log.IsDebugEnabled)
> 
>  
> 
>  {
> 
>  
> 
>   log.Debug("Entering method");
> 
>  
> 
>  }
> 
>  
> 
>  int result = 0;
> 
>  
> 
>  for (int i=0;i<100;i++)
> 
>  
> 
>  {
> 
>  
> 
>   result += i;
> 
>  
> 
>  }
> 
>  
> 
>  if (loggingEnabled && log.IsDebugEnabled)
> 
>  
> 
>  {
> 
>  
> 
>   log.Debug("Leaving method");
> 
>  
> 
>  }
> 
>  
> 
>  return result;
> 
>  
> 
> }
> 
>  
> 
>  
> 
>  
> 
> ----- Original Message ----
> 
>  
> 
> From: Ramaa Davanagere <[EMAIL PROTECTED]>
> 
>  
> 
> To: "[email protected]" 
> <[email protected]>
> 
>  
> 
> Sent: Tuesday, September 26, 2006 2:28:19 PM
> 
>  
> 
> Subject: Turn off logging for a specific event only
> 
>  
> 
>  
> 
>  
> 
>            <!--  _filtered {font-family:"Comic Sans MS"; 
> panose-1:3 15 7 2 3 3 2 2 2 4;} /* Style Definitions */  
> p.MsoNormal, li.MsoNormal, div.MsoNormal     {margin:0in; 
> margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times 
> New Roman";} a:link, span.MsoHyperlink          {color:blue; 
> text-decoration:underline;} a:visited, 
> span.MsoHyperlinkFollowed             {color:purple; 
> text-decoration:underline;} span.EmailStyle17     
> {font-family:"Comic Sans MS"; color:windowtext; 
> font-weight:normal; font-style:normal; text-decoration:none 
> none;}  _filtered { margin:1.0in 1.25in 1.0in 1.25in;} 
> div.Section1      {} -->        
> 
>  
> 
>   Is it possible to turn off the logging for a specific 
> event? I would like to turn of the logging when the code hits 
> a particular method and reset the logging to its original 
> value which is "DEBUG" while exiting that method. Is it 
> possible to accomplish this? If so, please provide me some 
> sample code on how to achieve this. My code is in c#.net and 
> uses log4net version 1.2.10
> 
>  
> 
>    
> 
>  
> 
>   Please help 
> 
>  
> 
>    
> 
>  
> 
>   Thanks.
> 
>  
> 
>    
> 
>  
> 
>   -Ramaa
> 
>  
> 
>   
> 
>  
> 
>   
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
> 

Reply via email to