-
Couldn't load subscription status.
- Fork 7.7k
Support log redirection #11117
-
Related area
Core of the framework
Hardware specification
Not relevant
Is your feature request related to a problem?
The logging facilities provided by the Arduino framework are hard-coded to the main serial output. This is often unwanted (e.g. when the persistence of logs is required or the serial interface needs to be free for other purposes).
Describe the solution you'd like
Allow the user to specify a custom sink function for the logs.
Describe alternatives you've considered
I wanted to use the built-in ESP-IDF logging facilities; however, I ran into #9813
Additional context
No response
I have checked existing list of Feature requests and the Contribution Guide
- I confirm I have checked existing list of Feature requests and Contribution Guide.
Beta Was this translation helpful? Give feedback.
All reactions
-
❤️ 1
Replies: 11 comments
-
#include "rom/ets_sys.h" static void custom_debug_write_char(char c) { //send the char to wherever you want, but be aware that this code might be called from interrupt } ets_install_putc1((void (*)(char)) & custom_debug_write_char); ets_install_putc2(NULL);
Beta Was this translation helpful? Give feedback.
All reactions
-
Thank you for the proposed solution. However, I am afraid of unwanted consequences of the proposed solution - it doesn't redirect the output of logging, but the output of the underlying layer. Thus any code using the ets_ function for output will be affected.
A quick grep of the Arduino framework showed that ets_printf isn't used extensively (just to output the reboot message), however, I have already seen 3rd party out in the wild using it. Thus, I don't find the proposed solution to be exactly clean. On top of that, if there was an interface to supply custom log_v and isr_log_v functions, the logging facility could store the format string and arguments separately (e.g., to save bandwidth or storage). This is not possible in the proposed solution. On top of that, we can't supply separate function to handle isr and non-isr context in you proposed solution.
Beta Was this translation helpful? Give feedback.
All reactions
-
esp_log_set_vprintf(...); in combination of setting -DUSE_ESP_IDF_LOG -DTAG=\"CORE\" in CFLAGS works for most of the logs for me.
Beta Was this translation helpful? Give feedback.
All reactions
-
logging facility could store the format string and arguments separately (e.g., to save bandwidth or storage). This is not possible in the proposed solution. On top of that, we can't supply separate function to handle isr and non-isr context in you proposed solution
The new logging library is in development in ESP-IDF and it should address both points. I think the initial version will appear in ESP-IDF before the end of the year.
Beta Was this translation helpful? Give feedback.
All reactions
-
@igrr: Thank you for the update. Nevertheless, if I understood correctly, the Arduino framework is opinionated, hence they reimplement logging (differently than ESP-IDF). Will this change also propagate to the Arduino framework?
Beta Was this translation helpful? Give feedback.
All reactions
-
Hello,
Due to the overwhelming volume of issues currently being addressed, we have decided to close the previously received tickets. If you still require assistance or if the issue persists, please don't hesitate to reopen the ticket.
Thanks.
Beta Was this translation helpful? Give feedback.
All reactions
-
The issue persists, however, it seems that I don't have permission to reopen, I can only comment.
Beta Was this translation helpful? Give feedback.
All reactions
-
esp_log_set_vprintf(...);in combination of setting-DUSE_ESP_IDF_LOG -DTAG=\"CORE\"in CFLAGS works for most of the logs for me
where should i add this -DUSE_ESP_IDF_LOG -DTAG=\"CORE\" ??
Beta Was this translation helpful? Give feedback.
All reactions
-
@Muskanjhawar in the platformio.ini
build_flags = -DUSE_ESP_IDF_LOG -DTAG=\"CORE\"
Beta Was this translation helpful? Give feedback.
All reactions
-
Beta Was this translation helpful? Give feedback.
All reactions
-
Moving to discussions since it is integrated and possible to use.
Beta Was this translation helpful? Give feedback.