Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Support log redirection #11117

yaqwsx started this conversation in Question - Community Help
Discussion options

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.
You must be logged in to vote

Replies: 11 comments

Comment options

#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);
You must be logged in to vote
0 replies
Comment options

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.

You must be logged in to vote
0 replies
Comment options

esp_log_set_vprintf(...); in combination of setting -DUSE_ESP_IDF_LOG -DTAG=\"CORE\" in CFLAGS works for most of the logs for me.

You must be logged in to vote
0 replies
Comment options

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.

You must be logged in to vote
0 replies
Comment options

@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?

You must be logged in to vote
0 replies
Comment options

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.

You must be logged in to vote
0 replies
Comment options

The issue persists, however, it seems that I don't have permission to reopen, I can only comment.

You must be logged in to vote
0 replies
Comment options

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\" ??

You must be logged in to vote
0 replies
Comment options

@Muskanjhawar in the platformio.ini
build_flags = -DUSE_ESP_IDF_LOG -DTAG=\"CORE\"

You must be logged in to vote
0 replies
Comment options

Can you please help me with some example code or some reference like how can i use this?
...
On Sun, Mar 9, 2025 at 11:23 PM Kilian ***@***.***> wrote: @Muskanjhawar <https://github.com/Muskanjhawar> in the platformio.ini build_flags = -DUSE_ESP_IDF_LOG -DTAG=\"CORE\" — Reply to this email directly, view it on GitHub <#9814 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/BGD734T6ECWIR23NLNGBE632TR53HAVCNFSM6AAAAABVHKJPZ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMBYHE4DOMRQGU> . You are receiving this because you were mentioned.Message ID: ***@***.***> [image: kaerbr]*kaerbr* left a comment (espressif/arduino-esp32#9814) <#9814 (comment)> @Muskanjhawar <https://github.com/Muskanjhawar> in the platformio.ini build_flags = -DUSE_ESP_IDF_LOG -DTAG=\"CORE\" — Reply to this email directly, view it on GitHub <#9814 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/BGD734T6ECWIR23NLNGBE632TR53HAVCNFSM6AAAAABVHKJPZ6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMBYHE4DOMRQGU> . You are receiving this because you were mentioned.Message ID: ***@***.***>
You must be logged in to vote
0 replies
Comment options

Moving to discussions since it is integrated and possible to use.

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Feature request Feature request for Arduino ESP32
Converted from issue

This discussion was converted from issue #9814 on March 13, 2025 10:42.

AltStyle によって変換されたページ (->オリジナル) /