-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a settings option to log to console in json format. #25649
Conversation
For deployments in docker containers it is very useful to just log to console in a structured json format without any color escapes. This adds the advanced option log_console_json (default false) to enable this.
Unfortunately the currently failing tests on the dev branch are a bit over my head. |
@@ -168,6 +168,7 @@ declare global { | |||
device_options: KeyValue; | |||
advanced: { | |||
log_rotation: boolean; | |||
log_console_json: boolean; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
log_console_json: boolean; | |
log_fromat: 'json' | 'text'; |
I think this is more extendable in the future
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't that be log_format_console if you want to do it that way? The file logs are a different category.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just had a chat with @Nerivec, let's keep it as is, could you make a PR for the docs then I can merge this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Koenkk I liked your idea more (with adding the console postfix) - I'm courious what is the reason you decided to keep it as is?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe in general that apps should not spend a huge amount of work for multiple logging destinations and various formatting options. That is nowadays mostly the task of the deployment infrastructure, for example systemd or docker, and they do a decent job at that.
If you want a big refactoring of the current logging, you would have to order all the options on a per channel basis, for example having a file channel, a syslog channel, a console channel each having a format and extra channel specific options. I think this is going overboard and not worth the effort.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andrejsoucek because it is unlikely that there will be any other formats than the existing one or json.
Could you also make a PR for the docs? |
Here it is: Koenkk/zigbee2mqtt.io#3404 |
Thanks! |
For deployments in docker containers it is very useful to just log to console in a structured json format without any color escapes. This adds the advanced option log_console_json (default false) to enable this.