[Development] New Module Request: QtGeniviExtras

Thiago Macieira thiago.macieira at intel.com
Wed Aug 12 16:36:59 CEST 2015

On Wednesday 12 August 2015 14:26:26 Robert Griebl wrote:
> >> Every LoggingCategory (In DLT it's called Context) needs to have a 3
> >> characters long unique identifier and a Description.
> > 
> > Stupid API limitation. Can you convince GENIVI to get rid of the
> > 3-character identifier requirement? It should be an arbitrarily-long
> > string, in which case we can use the logging category itself.
> Again - calling other APIs stupid does not help. And no - this is an
> industry standard which cannot easily change, because Qt has a different
> logging API. Besides: have you tried yet to get changes into Genivi
> components? Good luck with that -- we tried to fix a few much bigger
> problems upstream and it ended in uphill battles you don't want to fight.

This and...

> > qt_hash(the category name) then base64url-encode the result and cut to 3
> > characters.
> And this will be (a) unique and (b) human readable in the DLT viewer?
> (yes even 3 characters can be human readable)

... human readable do not go hand-in-hand. If you have 3 letters for a whole 
bunch of categories, then by definition it's neither unique nor human readable. 
So my suggestion seems right on the money and it's reasonably unique -- it 
provides for 18 bits of data, while most 3-letter human text is around 15 or 
16 bits.

Another option is to split the category name by the dots and select the first 
letter of each section. So "qt.qpa.windows" is "qqw", while 
"qt.widgets.gestures" is "qwg".

You can also add a configuration item to the environment variable or 
qtlogging.ini, which provides a separate, shorter name. QtGeniviExtras could 
provide an API to set it programmatically.

But this starts with writing a DLT backend inside QtCore first.

>  > By the way, doesn't GENIVI require systemd and thus journald anyway?
>  > Why do they have their own logging mechanism?
> Did you read the part about the back-channel from the DLT-Viewer to the
> application. But that is besides the point: DLT is used in much more
> than just systemd based IVI systems:

That's where my ignorance of DLT is. I was assuming it was created by GENIVI, 
recently. You're telling me it's an old protocol.

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

More information about the Development mailing list