Ok, all you are missing is a LossyEvaluator that will catch the Info and Warn event when they are about to be lost from the buffer and write the to the output. Just after your <evaluator> add the following:
<lossyEvaluator type="log4net.Core.LevelEvaluator"> <threshold value="INFO"/> </lossyEvaluator> Nicko > -----Original Message----- > From: Young, Jason (GE Infrastructure) [mailto:[EMAIL PROTECTED] > Sent: 25 August 2005 17:43 > To: Log4NET User > Subject: RE: Change logging level with a trigger > > Sorry for the abiguity. I want the messages to go to a file. > > To reiterate, I want the log to contain all info messages and above. > When an error occurs, I want additional information, all the > way down to the debug level. So if an error occurs, I will > have the last 500 log messages that will tell me what led up > to that event. > > I really appreciate any help you can provide. > > Here is what I have so far: > <?xml version="1.0" encoding="utf-8" ?> > <log4net> > > <!-- Define our output appender(s) --> > <appender name="RollingFiles" > type="log4net.Appender.RollingFileAppender"> > <param name="File" value="Log.txt" /> > <param name="AppendToFile" value="true" /> > > <param name="MaxSizeRollBackups" value="20" /> > <param name="MaximumFileSize" value="10MB" /> > <param name="RollingStyle" value="Size" /> > <param name="StaticLogFileName" value="true" /> > > <layout type="log4net.Layout.PatternLayout"> > <param name="Header" value="***** Log Started *****\r\n"/> > <param name="Footer" value="***** Log Ended *****\r\n"/> > <param name="ConversionPattern" value="%d [%t] > %-5p %c [%x] > - %m%n" /> > </layout> > </appender> > > <appender name="BFA" > type="log4net.Appender.BufferingForwardingAppender" > > <bufferSize value="512" /> > <lossy value="true" /> > <evaluator type="log4net.Core.LevelEvaluator"> > <threshold value="ERROR"/> > </evaluator> > <appender-ref ref="RollingFiles" /> > </appender> > > <!-- Setup the root category, add the appenders and set > the default level --> > <root> > <level value="INFO" /> > <appender-ref ref="RollingFiles" /> > </root> > > <!-- > Send all messages to the Buffering > Forwarding Appender so that it can > log the debug messages when it > encounters an ERROR level message. > --> > <logger name="root"> > <level value="DEBUG" /> > <appender-ref ref="BFA" /> > </logger> > </log4net> > > > > -----Original Message----- > From: Nicko Cadell [mailto:[EMAIL PROTECTED] > Sent: Thursday, August 25, 2005 10:04 AM > To: Log4NET User > Subject: RE: Change logging level with a trigger > > Jason, > > > We only want to log info messages and above, but if a > warning or above > > > is encountered, we want it to output the last x number of messages. > > When you say last x messages, do you mean of only Info and above? > If so then just set the logger level to Info. > > <root> > <level value="Info" /> > <appender-ref ...> > </root> > > > > The buffered file appender looks like it almost does this, but not > > quite. > > Where do you want the log messages to go? file, email etc... > > > > We've also been able to log all messages, but send an email > on error > > messages with the buffer. > > If you want to trigger sending the buffer on Warn events then > you need to specify a threshold value on the Evaluator of the > BufferingForwardingAppender. > > <evaluator type="log4net.Core.LevelEvaluator"> > <threshold value="Warn" /> > </evaluator> > > > > Does someone have an example config file that I could see? > > > > If you need more clarification, or want to see where I got stuck, > > please let me know. > > Why don't you post the log4net configuration you currently have. > > Cheers, > Nicko > > > > > Thanks, > > Jason > > > >
