I will keep an eye out for weird behaviour in my testing. What OS platform have you seen this behaviour on?
Cheers, Nicko > -----Original Message----- > From: Wesley Smith [mailto:[EMAIL PROTECTED] > Sent: 28 January 2005 22:45 > To: Log4NET Dev > Subject: RE: Patch to allow large messages to be logged via > ColoredConsoleAppender > > From the documentation, I thought that 31999 characters would > work too, but I found that it didn't always work. At least > with my test case, if the first call to WriteConsoleW is > smaller than 26000ish, then you can call it subsequent times > with up to 31999 chars, but if the first call is with > anything > 26000ish, then it prints nothing (for example, > passing 30000 characters to the first call of WriteConsoleW > doesn't print anything - at least in my test it didn't). > > I don't understand this behavior, and hope that you can come > up with something more reasonable and understandable - just > wanted to warn you to be on the lookout for this weird behavior. > > > > > -----Original Message----- > > From: Nicko Cadell [mailto:[EMAIL PROTECTED] > > Sent: Friday, January 28, 2005 2:35 PM > > To: Log4NET Dev > > Subject: RE: Patch to allow large messages to be logged via > > ColoredConsoleAppender > > > > It looks like the buffer passed to WriteConsoleW is limited > to 64KB, > > i.e. 32000 WCHARs less 1 for the NULL if the P/Invoke marshalling > feels > > like putting one on the end of the string. > > > > I will update the appender along the lines of your patch. > > > > > > Thanks, > > Nicko > > > > > -----Original Message----- > > > From: Wesley Smith [mailto:[EMAIL PROTECTED] > > > Sent: 27 January 2005 20:03 > > > To: log4net-dev@logging.apache.org > > > Subject: Patch to allow large messages to be logged via > > > ColoredConsoleAppender > > > > > > I found that if you attempt to log a message of more than about > > > 26000 characters, ColoredConsoleAppender will not log the message > > > (no error, just silently eats the message). One possible fix for > > > the problem is given in the patch below: > > > > > > > > > --- > C:\TEMP\log4net-1.2.0-beta8\src\Appender\ColoredConsoleAppender.cs > > > Mon Jul 07 01:05:02 2003 > > > +++ C:\Program > > > Files\log4net\log4net-1.2.0-beta8\src\Appender\ColoredConsoleA > > > ppender.cs > > > Wed Jan 26 12:57:22 2005 > > > @@ -280,13 +280,32 @@ > > > > > > string strLoggingMessage = > > > RenderLoggingEvent(loggingEvent); > > > > > > - // write the output. > > > UInt32 uiWritten = 0; > > > + > > > + // WriteConsoleW can only handle a limited > > > number of characters at a time > > > + // and emperically, 26000 is about right. > > > + const int maxChunkSize = 26000; > > > + while (strLoggingMessage.Length > maxChunkSize) > > > + { > > > + string firstPart = > > > strLoggingMessage.Substring(0, maxChunkSize); > > > + WriteConsoleW( iConsoleHandle, > > > + firstPart, > > > + (UInt32)firstPart.Length, > > > + out (UInt32)uiWritten, > > > + IntPtr.Zero); > > > + > > > + // Remove the characters already output > > > from strLoggingMessage > > > + strLoggingMessage = > > > strLoggingMessage.Substring(maxChunkSize); > > > + > > > + } > > > + // write the remaining output. > > > + > > > WriteConsoleW( iConsoleHandle, > > > > > > strLoggingMessage, > > > > > > (UInt32)strLoggingMessage.Length, > > > out > > > (UInt32)uiWritten, > > > IntPtr.Zero); > > > + > > > } > > > > > > /// <summary> > > > >