logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ramaa Davanagere <RDAVA...@mobius.com>
Subject RE: Internal debugging
Date Fri, 09 Sep 2005 15:11:22 GMT

Oh wow! I LOVE the idea of setting up the trace via the config file. This is
very neat! I can enable it whenever I want. But why is it so hard to get
things working though? I implemented the code changes you mentioned and its
still not working. 

My new code looks like this.

public class myErrorHandler
	{
		
		public ILog logger =
LogManager.GetLogger(typeof(myErrorHandler));

		public myErrorHandler ()	
		{	
			string strPath =
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssem
bly().Location);

			log4net.Config.XmlConfigurator.Configure(new
System.IO.FileInfo(strPath + "\\app.config"));
		}

		public void WriteToLog_Info(string sMessage)
		{		
	
logger.Info(System.Reflection.MethodBase.GetCurrentMethod() + " " +
sMessage);
		}

		public void WriteToLog_Err(string sErrorMessage)
		{
	
logger.Info(System.Reflection.MethodBase.GetCurrentMethod() + ": Exiting
with Exception caught.");
	
logger.Error(System.Reflection.MethodBase.GetCurrentMethod() + ": Error - "
+ sErrorMessage);
		}
	}

and my config file (app.config) looks like this.


<xml>
	<configuration>
		<configSections>
			<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
		</configSections>
		<appSettings>
			<add key="log4net.Internal.Debug" value="true"/>
		</appSettings>
		<system.diagnostics>
			<trace autoflush="true">
				<listeners>
					<add name="textWriterTraceListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="C:\\temp\\log4netInternalDebugging.txt"/>
				</listeners>
			</trace>
		</system.diagnostics>
		<log4net>
			<appender name="FileAppender"
type="log4net.Appender.FileAppender">
				<file value="C:\\temp\\mylog.txt"/>
				<appendToFile value="true"/>
				<layout type="log4net.Layout.PatternLayout">
					<conversionPattern value="%d %-5p %c
%m%n"/>
				</layout>
			</appender>
			<root>
				<level value="ALL"/>
				<appender-ref ref="FileAppender"/>
			</root>
		</log4net>
	</configuration>
</xml>

-----Original Message-----
From: Ron Grabowski [mailto:rongrabowski@yahoo.com] 
Sent: Friday, September 09, 2005 10:54 AM
To: Log4NET User
Subject: Re: Internal debugging

You may need to call Flush after setting up the listener or set the
AutoFlush property to true:

 System.Diagnostics.Trace.Flush()
 System.Diagnostics.Trace.AutoFlush = True

Setting log4net.Internal.Debug to true in the AppSettings as opposed to
on the log4net node allows log4net to record more debug information.
Did you know you can define trace listeners inside the App.Config file?
You may want to consider doing this so you can easily remove them once
you know you have things setup correctly:

<configuration>
 <configSections>
  <section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
 </configSections>
 <appSettings>
  <add key="log4net.Internal.Debug" value="true" />
 </appSettings>
 <system.diagnostics>
  <trace autoflush="true">
   <listeners>
    <add name="textWriterTraceListener" 
     type="System.Diagnostics.TextWriterTraceListener"
     initializeData="C:\\temp\\log4net.txt" />
    </listeners>
   </trace>
 </system.diagnostics>
 <log4net>
  <appender name="FileAppender" type="log4net.Appender.FileAppender">
   <file value="C:\\temp\\mylog.txt"/>
   <appendToFile value="true"/>
   <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d %-5p %c %m%n"/>
   </layout>
  </appender>
  <root>
  <level value="DEBUG"/>
   <appender-ref ref="FileAppender"/>
  </root>
 </log4net>
</configuration>

Log4net can output the calling method for you:

 logger.Info("Exiting with Exception caught.");

 <layout type="log4net.Layout.PatternLayout">
  <conversionPattern value="%d %-5p %c %method:%m%n"/>
 </layout>

Here's a list of all the patterns in the current version of log4net:

http://tinyurl.com/e3nd3
http://logging.apache.org/log4net/release/sdk/log4net.Layout.PatternLayout.h
tml

The log4net.Config.DOMConfigurator.Configure method has been
depreciated in the current vesion of log4net (1.2.9.0 beta). It has
been replaced with log4net.Config.XmlConfigurator.Configure.

--- Ramaa Davanagere <RDAVANAG@mobius.com> wrote:

> The code attached below is just not working. What is wrong? All I'm
> trying
> to do is, enable the internal debugging and write the message to
> log4netInternalDebugging.txt file. When I run this code, the file is
> getting
> created but no messages are getting logged. Please help
> 
>  
> 
>  
> 
> public class myErrorHandler
> 
>       {
> 
>             
> 
>             public ILog logger =
> LogManager.GetLogger(typeof(myErrorHandler));
> 
>  
> 
>             public myErrorHandler ()      
> 
>             {     
> 
>                   FileStream oFile = new
>
FileStream("C:\\temp\\log4netInternalDebuggging.txt",FileMode.Create,FileAcc
> ess.Write);
> 
>                   System.Diagnostics.Trace.Listeners.Add(new
> TextWriterTraceListener(oFile));
> 
>                   log4net.Util.LogLog.InternalDebugging = true;
> 
>                   log4net.Config.DOMConfigurator.Configure(new
> System.IO.FileInfo("C:\\temp\\app.config"));
> 
>             }
> 
>  
> 
>             public void WriteToLog_Info(string sMessage)
> 
>             {           
> 
>  
> logger.Info(System.Reflection.MethodBase.GetCurrentMethod() + " " +
> sMessage);
> 
>             }
> 
>  
> 
>             public void WriteToLog_Err(string sErrorMessage)
> 
>             {
> 
>  
> logger.Info(System.Reflection.MethodBase.GetCurrentMethod() + ":
> Exiting
> with Exception caught.");
> 
>  
> logger.Error(System.Reflection.MethodBase.GetCurrentMethod() + ":
> Error - "
> + sErrorMessage);
> 
>             }
> 
>             }
> 
>  
> 
> My App.cofig file looks like this.
> 
>  
> 
> <configuration>
> 
>        <configSections>
> 
>              <section name="log4net"
> type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
> 
>        </configSections>
> 
>        <appSettings/>
> 
>        <log4net debug="true">
> 
>              <appender name="FileAppender"
> type="log4net.Appender.FileAppender">
> 
>                     <file value="C:\\temp\\mylog.txt"/>
> 
>                     <appendToFile value="true"/>
> 
>                     <layout type="log4net.Layout.PatternLayout">
> 
>                            <conversionPattern value="%d %-5p %c
> %m%n"/>
> 
>                     </layout>
> 
>              </appender>
> 
>              <root>
> 
>                     <level value="DEBUG"/>
> 
>                     <appender-ref ref="FileAppender"/>
> 
>              </root>
> 
>        </log4net>
> 
> </configuration>
> 
>  
> 
> 

Mime
View raw message