High performance logging control
Folks, back in 2002 the last significant C++ app I wrote had a "logging" control which looked and moved in a very similar way to the cmd.exe window. I was just looking at the 300 lines of code I wrote back then it's quite complicated as I'm doing everything to paint the control contents. I'm creating the illusion of a cmd style window over a large buffer of messages (up to a few thousand), I maintain the positions of scrollbars, I draw lines in different colours, I can adjust the font and metrics and I use ScrollWindow API for fast motion. It created the illusion of blazing fast scrolling. I've pasted below a shot of what the C++ control used to look like. I'd like to create a similar control in Managed code, but quite honestly I don't know how. I just don't know what techniques to use to get the rapid scrolling feeling. If you were told to write a "logging" control that behaved like the cmd.exe window, what techniques would you consider? I could wrap the old C++ control code as an ActiveX control, but I've never needed to do that before and I'm not sure how tricky it is. I'll evaluate that idea now. Greg <>
Re: High performance logging control
i would create a logging control that collected the information and use async tcp to send the information to a console. Look at smartinspect , its pretty cool tool that does what you are explaining...i think On Fri, Oct 14, 2011 at 3:34 PM, Greg Keogh wrote: > Folks, back in 2002 the last significant C++ app I wrote had a “logging” > control which looked and moved in a very similar way to the cmd.exe window. > I was just looking at the 300 lines of code I wrote back then it’s quite > complicated as I’m doing everything to paint the control contents. I’m > creating the illusion of a cmd style window over a large buffer of messages > (up to a few thousand), I maintain the positions of scrollbars, I draw lines > in different colours, I can adjust the font and metrics and I use > ScrollWindow API for fast motion. It created the illusion of blazing fast > scrolling. I’ve pasted below a shot of what the C++ control used to look > like. > > ** ** > > I’d like to create a similar control in Managed code, but quite honestly I > don’t know how. I just don’t know what techniques to use to get the rapid > scrolling feeling. If you were told to write a “logging” control that > behaved like the cmd.exe window, what techniques would you consider? > > ** ** > > I could wrap the old C++ control code as an ActiveX control, but I’ve never > needed to do that before and I’m not sure how tricky it is. I’ll evaluate > that idea now.** > > ** ** > > Greg > > ** ** > > > <>
Re: High performance logging control
Greg, This reminded me of an app that I'd seen at a clients and I was pretty sure they were using Log4Net - so I did a quick search and this link shows a picture using the coloredconsoleappender which seems to me pretty much what you want - I know it doesn't involve writing any code - but I guess if you still want to you can see how the Log4Net team has done it. http://www.beefycode.com/post/Log4Net-Tutorial-pt-3-Appenders.aspx Neil. On 14 October 2011 14:34, Greg Keogh wrote: > Folks, back in 2002 the last significant C++ app I wrote had a “logging” > control which looked and moved in a very similar way to the cmd.exe window. > I was just looking at the 300 lines of code I wrote back then it’s quite > complicated as I’m doing everything to paint the control contents. I’m > creating the illusion of a cmd style window over a large buffer of messages > (up to a few thousand), I maintain the positions of scrollbars, I draw lines > in different colours, I can adjust the font and metrics and I use > ScrollWindow API for fast motion. It created the illusion of blazing fast > scrolling. I’ve pasted below a shot of what the C++ control used to look > like. > > ** ** > > I’d like to create a similar control in Managed code, but quite honestly I > don’t know how. I just don’t know what techniques to use to get the rapid > scrolling feeling. If you were told to write a “logging” control that > behaved like the cmd.exe window, what techniques would you consider? > > ** ** > > I could wrap the old C++ control code as an ActiveX control, but I’ve never > needed to do that before and I’m not sure how tricky it is. I’ll evaluate > that idea now.** > > ** ** > > Greg > > ** ** > > > <>