On Thu, May 22, 2025 at 11:38:34AM -0700, Dan Williams wrote: > Alison Schofield wrote: > > On Wed, May 21, 2025 at 09:00:19AM +0000, Zhijian Li (Fujitsu) wrote: > > > > > > > > > On 20/05/2025 03:28, alison.schofi...@intel.com wrote: > > > > diff --git a/ndctl/monitor.c b/ndctl/monitor.c > > > > index bd8a74863476..925b37f4184b 100644 > > > > --- a/ndctl/monitor.c > > > > +++ b/ndctl/monitor.c > > > > @@ -658,7 +658,7 @@ int cmd_monitor(int argc, const char **argv, struct > > > > ndctl_ctx *ctx) > > > > rc = -ENXIO; > > > > goto out; > > > > } > > > > - > > > > + info(&monitor, "monitor ready\n"); > > > > > > > > > This brings to mind my initial contribution to ndctl, where it commented > > > that monitor expects to > > > output content in json format[1]? So this update could break it, does it > > > matter now? > > > > > > [1] > > > https://lore.kernel.org/linux-cxl/4c2341c8a4e579e9643b7daa3eb412b0ac0da98a.ca...@intel.com/ > > > > That is odd because right above where you wanted to add that info[] to > > cxl/monitor.c another info[] was added to the log for the daemon starting ? > > > > ndctl/monitor.c has a few info[] going to the log. > > > > In the ndctl/monitor.c the presence of a log does not mean the monitor > > started. I'll poke around more about the need for json. I get that in > > theory, but I'm doubtful in practice that a json parser would die on > > those info entries. > > It's not just monitor, the expectation for all binaries in the project > is that all stdout is json and anything that is not json is only allowed > on stderr. That way you can always use these utilities in tooling > pipelines that do not need not to build a pile of grep and awk to > extract useful data. > > It turns out, unfortunately, that LOG_INFO is the only log level in > util/log.c that violates the expectation that all non-json goes to > stderr. So I would support a change like this to remove that trap: >
Ah, understood (now). Thanks & will do. > diff --git a/util/log.c b/util/log.c > index d4eef0a1fc5c..4ee85c7609c3 100644 > --- a/util/log.c > +++ b/util/log.c > @@ -18,10 +18,7 @@ void log_syslog(struct log_ctx *ctx, int priority, const > char *file, int line, > void log_standard(struct log_ctx *ctx, int priority, const char *file, int > line, > const char *fn, const char *format, va_list args) > { > - if (priority == 6) > - vfprintf(stdout, format, args); > - else > - vfprintf(stderr, format, args); > + vfprintf(stderr, format, args); > } > > void log_file(struct log_ctx *ctx, int priority, const char *file, int line,