logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ron Grabowski <rongrabow...@yahoo.com>
Subject Re: How to use ErrorHandler
Date Sat, 18 Dec 2004 00:23:14 GMT
If you download and install this free program:

 http://www.sysinternals.com/ntw2k/freeware/debugview.shtml

And setup log4net to run in Debug mode:

<appSettings>
 <add key="log4net.Internal.Debug" value="true" />
</appSettings>

You should be able to see your Appenders being initialized and/or the
exceptions that are caused by incorrectly configured Appenders.

This is how I log that information to a file in my Asp.Net application:

if (log4netIsInDebugMode() == true)
{
	// if log4net is in debug mode (useful for discovering why appenders
are not working), it will 
	// print out internal messages and errors to the System.Console and to
System.Diagnostics.Trace;
	// the code below will capture log4net output and attempt to write it
to a known writeable
	// directory;
	string physicalPathLogFile =
Path.Combine(System.Web.HttpRuntime.AppDomainAppPath,
LOG4NET_LOG_FILE);

	try
	{
		FileStream fileStream = new FileStream(physicalPathLogFile,
FileMode.Create, FileAccess.Write );
		if (fileStream != null && fileStream.CanWrite)
		{
			// this doesn't affect Trace.axd becuase Trace.axd is from
System.Web.TraceContext
			// System.Diagnostics.Trace.Listeners.Clear();
			System.Diagnostics.Trace.Listeners.Add(new
TextWriterTraceListener(fileStream));
		}
	}
	catch(SystemException ex)
	{
		// System.UnauthorizedAccessException - The exception that is thrown
when the operating system denies access because of an I/O error or a
specific type of security error.

		// log the message to a location that was the cause for the exception
???
		System.Diagnostics.Trace.Write("log4net", "Unable to create log4net
logger at [" + physicalPathLogFile + "]. Exception: " + ex.ToString());
	}
}
	
log4net.Config.DOMConfigurator.Configure();

// make sure the complete log4net startup log appears
System.Diagnostics.Trace.Flush();

- Ron

--- "Collier, Mike" <Mike_Collier@stercomm.com> wrote:

> How would I use the ErrorHandler property for an appender?  For
> example,
> let's assume I'm using the ADONetAppender and for some reason it
> fails
> (i.e. unable to connect to the database server).  I would like to not
> loose the message.  I was thinking that I could use the ErrorHandler
> property to define another appender to use in this case.  However,
> I'm
> not sure how to do this.  Does anybody have any examples or ideas on
> how
> this might be accomplished.
> 
> Thanks!
> 
>  
> 
> 
> 	
> 


Mime
View raw message