Does the new logger application “logger” better than sdlog2 ?
Is there any documents or discuss about it?
thank you.
Does the new logger application “logger” better than sdlog2 ?
Is there any documents or discuss about it?
thank you.
I share this question and wanted to revive this to see if anyone can share insight. A little more background as I understand it:
.ulog files, which can be parsed in python using pyulog
.px4log files, which can be parsed and analyzed in python using sdlog2_dump.py with px4tools
The rcS specifies the default applications which are run. Looking at this it seems either logger or sdlog2 are called, depending on the hardware version and parameters set. Reiterating the question by @cctsao1008:
Thank you in advance to whomever can shed light on this.
logger is the new logging module. It allows logging of any uorb topic and is therefore more flexible and elegant.
http://dev.px4.io/advanced-logging.html
sdlog2 is the previous logging method. The messages it logs are hardcoded.
The new format may not be supported by all log analysis tools yet.
Thank you @Nicolas.
The default settings for px4fmu-v2_default used sdlog2. I tried the steps below to switch to using logger, but was not getting any log files generated on the microsd. Simply keeping SYS_LOGGER 0 reverts back to sdlog2, which is working. If anyone knows what step I’m missing, that would be helpful to be able to use the new logger.
/etc/config.txt:param set SYS_LOGGER 1
/etc/logging/logger_topics.txt:sensor_combined, 10
-e option to logger calls in rcS file:logger start -b 12 -e
Note: I’ve added the -e option so that logging can happen without requiring arming.
Have you tried to set SYS_LOGGER via QGC directly instead of the config.txt?
For a first test, you can forgo configuring the logging with the logger_topics.txt file. Without that file present, a set of default topics will be logged.
Simply changing the parameter in QGC and rebooting the system works fine for me.
I’m now trying to change parameters via QGC directly, but have two questions:
How can you reboot the system in QGC? If I cycle power it does not save the parameters and so I suspect a reboot is a different process
I want logger to run without requiring pixhawk to be armed. Said differently, log upon power up. Looking at the latest rcS, that means I should also set SDLOG_MODE = 1.
SDLOG_MODE in QGCSDLOG_MODE = 1 via the microsd config.txt, but again no log files appeared@Nicolas, are you able to use QGC to use logger to begin logging upon power on?
Thanks again for your help on this.
Setting the parameter should survive a power cycle.
Have you removed the config.txt? Maybe that’s causing problems?
Are you able to change other parameters s.t. they survive a power cycle?
Have you reverted to the non-modified rcS? I’d suggest you first get it running with the default behavior.
Have you connected to the console and started the logger manually? Does that start with no errors?
If I recall correctly, I had no problems switching to logger through QGC.
hi @hamid-m
The current px4fmu-v2 config has the logger disabled because of flash space limitations. You need to enable it in https://github.com/PX4/Firmware/blob/master/cmake/configs/nuttx_px4fmu-v2_default.cmake#L116 and probably disable sdlog2.
Thank you @bkueng and @Nicolas, I was able to successfully use logger in by modifying px4fmu-v2_default.
For others trying to make the switch from sdlog2 to logger AND want to log on power up (i.e. regardless of arming status) these are the steps that worked for me:
You need to recompile the firmware, because as noted by @bkueng, the default compiling options exclude logger. Hence, be able to successfully build the code
Modify cmake/configs/nuttx_px4fmu-v2_default.cmake
modules/logger is uncommenteddrivers/px4flow, drivers/camera_trigger, modules/local_position_estimator, modules/ekf2, and modules/sdlog2etc/config.txt to the microsd card with the following content:param set SYS_LOGGER 1
param set SDLOG_MODE 1
Now logger is run on power up and generates log/sess<#>/log001.ulg files.