utwente/parlevision

Logger

Opened this issue · 5 comments

We need a better logger. qDebug() is used for everything now but this does not yield output in release mode.

We need a logger which can have different levels such as WARNING, ERROR, NOTIFY etc and which works in release mode. It would also be nice if it writes to a file because of lack of stdin stdout in windows.

We now use the Qxt library logger. It has facilities for writing to stdout, plain text, XML text. It is also used in the GUI to display log messages. TODO is a wrapper so plugins do not have to link to Qxt but only have to link to plvcore.

Hi there,

I think Qxt is a quite a large dependency, considering the fact that you're only using it for logging. I've recently found QsLog, a simple but functional logging library which knows about Qt types. It is also quite small and could embedded into the source distribution thanks to a more liberal license. Maybe you could give it a try, or I could come up with a fork for you.

Hi, not for the faint of hearted might have been an understatement. I succeeded but took me 2 days to get everything working on a PC without any SDKs installed. Might hav "unhelped" that I only used msvs2010 and opencv ones before. Anyway trial and lots of error did it again.

I was wondering about the difference between QtxCored.dll and QtxCore.dll. As I was too lazy to find a proper solution I tried a pragmatic solution copying QtxCore as QtxCored (suspecting a typing error due to 210d opencv naming) and somehow it worked. So one to three questions,

  1. does Parlevision rely on QtxCored.dll instead of QtxCore.dll?
  2. if so, is this difference essential and?
  3. if so, what is this difference?

I used libqxt 0.6.1, qt 4.7.4 with msvs2010 as well as Qt SDK using the msvs2010 compiled 4.7.4 for building, respect for the work and improvements just finished a simple properly working blob tracker in no time.

Regards, Robby

Well in C/C++ programming it is common practice to use different names for debug builds versus release builds. This way you can build and store them in the same directory. When linking the program these names are also used. So if you build ParleVision in debug mode, it will look for QxtCored.dll and when you build it in release mode it will look for QxtCore.dll. The same goes for OpenCV. Since you see OpenCV as having a added 'd' naming convention, you built it in debug mode only, that is why every dll has an extra 'd' in it! :)

Concerning the logging, I will take a look as QsLog. Thanks for contributing ideas!