[libcamera-devel] [PATCH 2/2] libcamera: log: Print the thread ID in the log
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Jan 20 11:23:54 CET 2020
Hi Laurent,
On 18/01/2020 23:19, Niklas Söderlund wrote:
> Hi Laurent,
>
> Thanks for your work.
>
> On 2020-01-18 23:33:48 +0200, Laurent Pinchart wrote:
>> The current thread ID is useful when debugging concurrency issues. Print
>> it in log messages. The syslog target is left out as the thread ID would
>> have little use there, and partly duplicates the process ID.
>>
An example print here would be nice to make it easy to see the effect,
>> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>
> Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
>
>> ---
>> src/libcamera/log.cpp | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/libcamera/log.cpp b/src/libcamera/log.cpp
>> index f4eb8c11adc3..1dac4666b435 100644
>> --- a/src/libcamera/log.cpp
>> +++ b/src/libcamera/log.cpp
>> @@ -22,6 +22,7 @@
>>
>> #include <libcamera/logging.h>
>>
>> +#include "thread.h"
>> #include "utils.h"
>>
>> /**
>> @@ -196,7 +197,8 @@ void LogOutput::write(const LogMessage &msg)
>> break;
>> case LoggingTargetStream:
>> case LoggingTargetFile:
>> - str = "[" + utils::time_point_to_string(msg.timestamp()) + "]"
>> + str = "[" + utils::time_point_to_string(msg.timestamp()) + "] ["
As we already have 2 characters to 'wrap' both the timestamp, and the
thread ID, do we really need to add a third 'whitespace' separator?
The debug lines are already getting quite long... So we can argue both
ways, padding is expensive, or lines are already so long - that the
length doesn't matter...
It would be nice if we could keep our debug lines under 120 chars though
(Purely arbitrary/selfish, That's my terminal width :-D)
Noting of course that I have another patch which expands the debug log
level to normalise spelling against their other usages which expands
this string by another character too ...
>> + + std::to_string(Thread::currentId()) + "]"
Should we print this with a fixed width?
(Yes, I know that would cost extra characters of course)
In fact, I think I've argued myself out of this one.
My rationale was to stop something like this:
> [80:48:31.722536024] DEBUG V4L2 v4l2_videodevice.cpp:1185 /dev/video0[cap]: Queueing buffer 0
> [80:48:31.757739217] DEBUG V4L2 v4l2_videodevice.cpp:1254 /dev/video0[cap]: Dequeuing buffer 1
looking like this:
> [80:48:31.722536024] [1234] DEBUG V4L2 v4l2_videodevice.cpp:1185 /dev/video0[cap]: Queueing buffer 0
> [80:48:31.757739217] [123] DEBUG V4L2 v4l2_videodevice.cpp:1254 /dev/video0[cap]: Dequeuing buffer 1
As keeping the alignment on the actual message is nicer. But perhaps we
just need a log parser like Gstreamer provides.
Discussion comments aside,
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>> + log_severity_name(msg.severity()) + " "
>> + msg.category().name() + " " + msg.fileInfo() + " "
>> + msg.msg();
>> --
>> Regards,
>>
>> Laurent Pinchart
>>
>> _______________________________________________
>> libcamera-devel mailing list
>> libcamera-devel at lists.libcamera.org
>> https://lists.libcamera.org/listinfo/libcamera-devel
>
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list