High performance logging control

2011-10-13 Thread Greg Keogh
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

2011-10-14 Thread Anthony Mayan
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

2011-10-15 Thread Neil Young
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
>
> ** **
>
> 
>
<>